Revamped build process
This commit is contained in:
parent
1eabdeea8f
commit
90ecdad357
102
build
Executable file
102
build
Executable file
|
@ -0,0 +1,102 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# use this as: PUSH=0 ./build ... in order to set the variable. default is PUSH=1
|
||||||
|
PUSH=${PUSH:-1}
|
||||||
|
FORCE=${FORCE:-0}
|
||||||
|
|
||||||
|
if [ ! "$1" == "" ]; then
|
||||||
|
IMAGE_VERSION=$1
|
||||||
|
else
|
||||||
|
echo "No Nextcloud version specified. Exiting (1)."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! "$2" == "" ]; then
|
||||||
|
VARIANTS=$2
|
||||||
|
else
|
||||||
|
VARIANTS=("fpm" "fpm-alpine")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set username and password
|
||||||
|
# requires vars DOCKER_USER and DOCKER_PASS to be defined before calling.
|
||||||
|
# useful functions.
|
||||||
|
function docker_tag_exists() {
|
||||||
|
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${DOCKER_USER}'", "password": "'${DOCKER_PASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
|
||||||
|
curl --silent -f --head -lL https://hub.docker.com/v2/repositories/$1/tags/$2/ > /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
for item in "${!VARIANTS[@]}"
|
||||||
|
do
|
||||||
|
IMAGE_VARIANT=${VARIANTS[$item]}
|
||||||
|
UPSTREAM_IMAGE=nextcloud
|
||||||
|
UPSTREAM_IMAGE_TAG=${IMAGE_VERSION}-${IMAGE_VARIANT}
|
||||||
|
IMAGE=bkraul/nextcloud
|
||||||
|
|
||||||
|
echo "Building Nextcloud ${IMAGE_VERSION}, variant: ${IMAGE_VARIANT}..."
|
||||||
|
|
||||||
|
# pull the parent image from docker hub.
|
||||||
|
echo "Pulling upstream image ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG}..."
|
||||||
|
docker pull ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG} > /dev/null
|
||||||
|
UPSTREAM_ID=$(docker image inspect --format='{{index .Id}}' ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG})
|
||||||
|
UPSTREAM_ID=${UPSTREAM_ID:7}
|
||||||
|
|
||||||
|
# get the version number.
|
||||||
|
NEXTCLOUD_VERSION=$(docker inspect ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG} | jq -r '.[].Config.Env[] | select(match("^NEXTCLOUD_VERSION"))')
|
||||||
|
NEXTCLOUD_VERSION=${NEXTCLOUD_VERSION:18}
|
||||||
|
IMAGE_TAG=${NEXTCLOUD_VERSION}-${IMAGE_VARIANT}
|
||||||
|
|
||||||
|
if docker_tag_exists ${IMAGE} ${IMAGE_TAG}; then
|
||||||
|
# nothing to do, the image already exists.
|
||||||
|
echo Image ${IMAGE}:${IMAGE_TAG} already exists.
|
||||||
|
echo "----------------------------"
|
||||||
|
echo "FORCE: $FORCE"
|
||||||
|
if [ $FORCE == 0 ]; then continue; fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# determine the common files to use.
|
||||||
|
# Dockerfile
|
||||||
|
DOCKERFILE_DIR="./build-common/dockerfile"
|
||||||
|
DOCKERFILE=""
|
||||||
|
if [ -f "${DOCKERFILE_DIR}/Dockerfile" ]; then DOCKERFILE="${DOCKERFILE_DIR}/Dockerfile"; fi
|
||||||
|
if [ -f "${DOCKERFILE_DIR}/Dockerfile-${IMAGE_VERSION}" ]; then DOCKERFILE="${DOCKERFILE_DIR}/Dockerfile-${IMAGE_VERSION}"; fi
|
||||||
|
if [ -f "${DOCKERFILE_DIR}/Dockerfile-${IMAGE_VARIANT}" ]; then echo "Image variant"; DOCKERFILE="${DOCKERFILE_DIR}/Dockerfile-${IMAGE_VARIANT}"; fi
|
||||||
|
if [ -f "${DOCKERFILE_DIR}/Dockerfile-${IMAGE_VARIANT}-${IMAGE_VERSION}" ]; then DOCKERFILE="${DOCKERFILE_DIR}/Dockerfile-${IMAGE_VARIANT}-${IMAGE_VERSION}"; fi
|
||||||
|
|
||||||
|
# if no valid Dockerfile is found, we abort current build and go to next variant if available.
|
||||||
|
if [ "${DOCKERFILE}" = "" ]; then echo "No valid Dockerfile found."; continue; fi
|
||||||
|
|
||||||
|
# image doesn't exist we need build and push
|
||||||
|
echo Image ${IMAGE}:${IMAGE_TAG} does not exist.
|
||||||
|
echo "Building image(s)..."
|
||||||
|
#--file ${DOCKERFILE} \
|
||||||
|
docker build \
|
||||||
|
--file ${DOCKERFILE} \
|
||||||
|
--no-cache \
|
||||||
|
-t ${IMAGE}:${UPSTREAM_IMAGE_TAG} \
|
||||||
|
-t ${IMAGE}:${IMAGE_TAG} \
|
||||||
|
--build-arg BASE_IMAGE="${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG}" \
|
||||||
|
--progress plain \
|
||||||
|
./build-common
|
||||||
|
|
||||||
|
if [ $? == 0 ]; then
|
||||||
|
# don't push if specified so (continue the variant loop).
|
||||||
|
if [ ${PUSH} == 0 ]; then
|
||||||
|
echo "----------------------------"
|
||||||
|
continue;
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Pushing image(s)..."
|
||||||
|
docker push ${IMAGE}:${IMAGE_TAG}
|
||||||
|
docker push ${IMAGE}:${UPSTREAM_IMAGE_TAG}
|
||||||
|
else
|
||||||
|
echo "The build operation failed."
|
||||||
|
echo "Please debug and try again."
|
||||||
|
fi
|
||||||
|
echo "----------------------------"
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
FROM nextcloud:19-fpm
|
# retrieve the base image (default to latest).
|
||||||
|
ARG BASE_IMAGE="nextcloud:29-fpm"
|
||||||
|
|
||||||
|
FROM ${BASE_IMAGE}
|
||||||
|
LABEL org.opencontainers.image.authors="Belman Kraul <bkraul@gmail.com>"
|
||||||
|
|
||||||
RUN set -ex \
|
RUN set -ex \
|
||||||
usermod -u 82 www-data; \
|
usermod -u 82 www-data; \
|
||||||
|
@ -11,8 +15,7 @@ RUN set -ex \
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
apt-get update; \
|
apt-get update; \
|
||||||
apt-get install -y \
|
apt-get install -y libmagickcore-6.q16-3-extra libsmbclient; \
|
||||||
libmagickcore-6.q16-3-extra; \
|
|
||||||
rm -rf /var/lib/apt/lists/*;
|
rm -rf /var/lib/apt/lists/*;
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
|
@ -21,7 +24,9 @@ RUN set -ex; \
|
||||||
apt-get install -y libsmbclient-dev; \
|
apt-get install -y libsmbclient-dev; \
|
||||||
pecl install smbclient; \
|
pecl install smbclient; \
|
||||||
docker-php-ext-enable smbclient; \
|
docker-php-ext-enable smbclient; \
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
apt-get install -y libbz2-dev; \
|
||||||
|
docker-php-ext-install bz2; \
|
||||||
|
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
||||||
apt-mark auto '.*' > /dev/null; \
|
apt-mark auto '.*' > /dev/null; \
|
||||||
apt-mark manual $savedAptMark; \
|
apt-mark manual $savedAptMark; \
|
||||||
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
||||||
|
@ -35,4 +40,5 @@ RUN set -ex; \
|
||||||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
# copy the redis configuration file.
|
||||||
|
COPY redis/redis.config.php /usr/src/nextcloud/config/redis.config.php
|
28
build-common/dockerfile/Dockerfile-fpm-alpine
Normal file
28
build-common/dockerfile/Dockerfile-fpm-alpine
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# retrieve the base image (default to latest).
|
||||||
|
ARG BASE_IMAGE="nextcloud:29-fpm-alpine"
|
||||||
|
|
||||||
|
FROM ${BASE_IMAGE}
|
||||||
|
LABEL org.opencontainers.image.authors="Belman Kraul <bkraul@gmail.com>"
|
||||||
|
|
||||||
|
RUN set -ex; \
|
||||||
|
PHP_VER=${PHP_VERSION:0:3} && PHP_VER=${PHP_VER//.} && \
|
||||||
|
apk add --no-cache --virtual .build-deps \
|
||||||
|
autoconf \
|
||||||
|
automake \
|
||||||
|
file \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
make \
|
||||||
|
php${PHP_VER}-dev \
|
||||||
|
re2c \
|
||||||
|
samba-dev \
|
||||||
|
zlib-dev \
|
||||||
|
bzip2-dev; \
|
||||||
|
apk add --no-cache libsmbclient; \
|
||||||
|
pecl install smbclient; \
|
||||||
|
docker-php-ext-enable smbclient; \
|
||||||
|
docker-php-ext-install bz2; \
|
||||||
|
apk add --no-cache imagemagick imagemagick-svg; \
|
||||||
|
apk del .build-deps
|
||||||
|
|
||||||
|
COPY redis/redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
@ -1,22 +0,0 @@
|
||||||
FROM nextcloud:16-fpm-alpine
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
apk add --no-cache --virtual .build-deps \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
file \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
php7-dev \
|
|
||||||
re2c \
|
|
||||||
samba-dev \
|
|
||||||
zlib-dev; \
|
|
||||||
apk add --no-cache libsmbclient; \
|
|
||||||
pecl install smbclient; \
|
|
||||||
docker-php-ext-enable smbclient; \
|
|
||||||
apk add --no-cache imagemagick; \
|
|
||||||
apk add --no-cache sudo; \
|
|
||||||
apk del .build-deps
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker pull nextcloud:16-fpm-alpine
|
|
||||||
docker build $1\
|
|
||||||
-t bkraul/nextcloud:16-fpm-alpine \
|
|
||||||
.
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker push bkraul/nextcloud:16-fpm-alpine
|
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
FROM nextcloud:17-fpm-alpine
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
apk add --no-cache --virtual .build-deps \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
file \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
php7-dev \
|
|
||||||
re2c \
|
|
||||||
samba-dev \
|
|
||||||
zlib-dev; \
|
|
||||||
apk add --no-cache libsmbclient; \
|
|
||||||
pecl install smbclient; \
|
|
||||||
docker-php-ext-enable smbclient; \
|
|
||||||
apk add --no-cache imagemagick; \
|
|
||||||
apk add --no-cache sudo; \
|
|
||||||
apk del .build-deps
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker pull nextcloud:17-fpm-alpine
|
|
||||||
docker build $1\
|
|
||||||
-t bkraul/nextcloud:17-fpm-alpine \
|
|
||||||
.
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker push bkraul/nextcloud:17-fpm-alpine
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -1,21 +0,0 @@
|
||||||
FROM nextcloud:18-fpm-alpine
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
apk add --no-cache --virtual .build-deps \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
file \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
php7-dev \
|
|
||||||
re2c \
|
|
||||||
samba-dev \
|
|
||||||
zlib-dev; \
|
|
||||||
apk add --no-cache libsmbclient; \
|
|
||||||
pecl install smbclient; \
|
|
||||||
docker-php-ext-enable smbclient; \
|
|
||||||
apk add --no-cache imagemagick; \
|
|
||||||
apk del .build-deps
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker pull nextcloud:18-fpm-alpine
|
|
||||||
docker build $1\
|
|
||||||
-t bkraul/nextcloud:18-fpm-alpine \
|
|
||||||
.
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker push bkraul/nextcloud:18-fpm-alpine
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -1,21 +0,0 @@
|
||||||
FROM nextcloud:19-fpm-alpine
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
apk add --no-cache --virtual .build-deps \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
file \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
php7-dev \
|
|
||||||
re2c \
|
|
||||||
samba-dev \
|
|
||||||
zlib-dev; \
|
|
||||||
apk add --no-cache libsmbclient; \
|
|
||||||
pecl install smbclient; \
|
|
||||||
docker-php-ext-enable smbclient; \
|
|
||||||
apk add --no-cache imagemagick; \
|
|
||||||
apk del .build-deps
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,47 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# define variables.
|
|
||||||
IMAGE_VARIANT=fpm-alpine
|
|
||||||
IMAGE_VERSION=19
|
|
||||||
UPSTREAM_IMAGE=nextcloud
|
|
||||||
UPSTREAM_IMAGE_TAG=${IMAGE_VERSION}-${IMAGE_VARIANT}
|
|
||||||
IMAGE=bkraul/nextcloud
|
|
||||||
|
|
||||||
# set username and password
|
|
||||||
# requires vars DOCKER_USER and DOCKER_PASS to be defined before calling.
|
|
||||||
|
|
||||||
# useful functions.
|
|
||||||
function docker_tag_exists() {
|
|
||||||
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${DOCKER_USER}'", "password": "'${DOCKER_PASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
|
|
||||||
curl --silent -f --head -lL https://hub.docker.com/v2/repositories/$1/tags/$2/ > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# pull the parent image from docker hub.
|
|
||||||
docker pull ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG}
|
|
||||||
UPSTREAM_ID=$(docker image inspect --format='{{index .Id}}' ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG})
|
|
||||||
UPSTREAM_ID=${UPSTREAM_ID:7}
|
|
||||||
|
|
||||||
# get the version number.
|
|
||||||
NEXTCLOUD_VERSION=$(docker inspect ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG} | jq -r '.[].Config.Env[] | select(match("^NEXTCLOUD_VERSION"))')
|
|
||||||
NEXTCLOUD_VERSION=${NEXTCLOUD_VERSION:18}
|
|
||||||
IMAGE_TAG=${NEXTCLOUD_VERSION}-${IMAGE_VARIANT}
|
|
||||||
|
|
||||||
if docker_tag_exists ${IMAGE} ${IMAGE_TAG}; then
|
|
||||||
# nothing to do, the image already exists.
|
|
||||||
echo Image ${IMAGE}:${IMAGE_TAG} already exists.
|
|
||||||
else
|
|
||||||
# image doesn't exist we need build and push
|
|
||||||
echo Image ${IMAGE}:${IMAGE_TAG} does not exist.
|
|
||||||
echo "Building image(s)..."
|
|
||||||
docker build $1 \
|
|
||||||
-t ${IMAGE}:${UPSTREAM_IMAGE_TAG} \
|
|
||||||
-t ${IMAGE}:${IMAGE_TAG}
|
|
||||||
if [ $? == 0 ]; then
|
|
||||||
echo "Pushing image(s)..."
|
|
||||||
docker push ${IMAGE}:${IMAGE_TAG}
|
|
||||||
docker push ${IMAGE}:${UPSTREAM_IMAGE_TAG}
|
|
||||||
else
|
|
||||||
echo "The build operation failed."
|
|
||||||
echo "Please debug and try again."
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -1,21 +0,0 @@
|
||||||
FROM nextcloud:20-fpm-alpine
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
apk add --no-cache --virtual .build-deps \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
file \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
php7-dev \
|
|
||||||
re2c \
|
|
||||||
samba-dev \
|
|
||||||
zlib-dev; \
|
|
||||||
apk add --no-cache libsmbclient; \
|
|
||||||
pecl install smbclient; \
|
|
||||||
docker-php-ext-enable smbclient; \
|
|
||||||
apk add --no-cache imagemagick; \
|
|
||||||
apk del .build-deps
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,48 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# define variables.
|
|
||||||
IMAGE_VARIANT=fpm-alpine
|
|
||||||
IMAGE_VERSION=20
|
|
||||||
UPSTREAM_IMAGE=nextcloud
|
|
||||||
UPSTREAM_IMAGE_TAG=${IMAGE_VERSION}-${IMAGE_VARIANT}
|
|
||||||
IMAGE=bkraul/nextcloud
|
|
||||||
|
|
||||||
# set username and password
|
|
||||||
# requires vars DOCKER_USER and DOCKER_PASS to be defined before calling.
|
|
||||||
|
|
||||||
# useful functions.
|
|
||||||
function docker_tag_exists() {
|
|
||||||
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${DOCKER_USER}'", "password": "'${DOCKER_PASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
|
|
||||||
curl --silent -f --head -lL https://hub.docker.com/v2/repositories/$1/tags/$2/ > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# pull the parent image from docker hub.
|
|
||||||
docker pull ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG}
|
|
||||||
UPSTREAM_ID=$(docker image inspect --format='{{index .Id}}' ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG})
|
|
||||||
UPSTREAM_ID=${UPSTREAM_ID:7}
|
|
||||||
|
|
||||||
# get the version number.
|
|
||||||
NEXTCLOUD_VERSION=$(docker inspect ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG} | jq -r '.[].Config.Env[] | select(match("^NEXTCLOUD_VERSION"))')
|
|
||||||
NEXTCLOUD_VERSION=${NEXTCLOUD_VERSION:18}
|
|
||||||
IMAGE_TAG=${NEXTCLOUD_VERSION}-${IMAGE_VARIANT}
|
|
||||||
|
|
||||||
if docker_tag_exists ${IMAGE} ${IMAGE_TAG}; then
|
|
||||||
# nothing to do, the image already exists.
|
|
||||||
echo Image ${IMAGE}:${IMAGE_TAG} already exists.
|
|
||||||
else
|
|
||||||
exit 0
|
|
||||||
# image doesn't exist we need build and push
|
|
||||||
echo Image ${IMAGE}:${IMAGE_TAG} does not exist.
|
|
||||||
echo "Building image(s)..."
|
|
||||||
docker build $1 \
|
|
||||||
-t ${IMAGE}:${UPSTREAM_IMAGE_TAG} \
|
|
||||||
-t ${IMAGE}:${IMAGE_TAG}
|
|
||||||
if [ $? == 0 ]; then
|
|
||||||
echo "Pushing image(s)..."
|
|
||||||
docker push ${IMAGE}:${IMAGE_TAG}
|
|
||||||
docker push ${IMAGE}:${UPSTREAM_IMAGE_TAG}
|
|
||||||
else
|
|
||||||
echo "The build operation failed."
|
|
||||||
echo "Please debug and try again."
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -1,21 +0,0 @@
|
||||||
FROM nextcloud:21-fpm-alpine
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
apk add --no-cache --virtual .build-deps \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
file \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
php7-dev \
|
|
||||||
re2c \
|
|
||||||
samba-dev \
|
|
||||||
zlib-dev; \
|
|
||||||
apk add --no-cache libsmbclient; \
|
|
||||||
pecl install smbclient; \
|
|
||||||
docker-php-ext-enable smbclient; \
|
|
||||||
apk add --no-cache imagemagick; \
|
|
||||||
apk del .build-deps
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,48 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# define variables.
|
|
||||||
IMAGE_VARIANT=fpm-alpine
|
|
||||||
IMAGE_VERSION=21
|
|
||||||
UPSTREAM_IMAGE=nextcloud
|
|
||||||
UPSTREAM_IMAGE_TAG=${IMAGE_VERSION}-${IMAGE_VARIANT}
|
|
||||||
IMAGE=bkraul/nextcloud
|
|
||||||
|
|
||||||
# set username and password
|
|
||||||
# requires vars DOCKER_USER and DOCKER_PASS to be defined before calling.
|
|
||||||
|
|
||||||
# useful functions.
|
|
||||||
function docker_tag_exists() {
|
|
||||||
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${DOCKER_USER}'", "password": "'${DOCKER_PASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
|
|
||||||
curl --silent -f --head -lL https://hub.docker.com/v2/repositories/$1/tags/$2/ > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# pull the parent image from docker hub.
|
|
||||||
docker pull ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG}
|
|
||||||
UPSTREAM_ID=$(docker image inspect --format='{{index .Id}}' ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG})
|
|
||||||
UPSTREAM_ID=${UPSTREAM_ID:7}
|
|
||||||
|
|
||||||
# get the version number.
|
|
||||||
NEXTCLOUD_VERSION=$(docker inspect ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG} | jq -r '.[].Config.Env[] | select(match("^NEXTCLOUD_VERSION"))')
|
|
||||||
NEXTCLOUD_VERSION=${NEXTCLOUD_VERSION:18}
|
|
||||||
IMAGE_TAG=${NEXTCLOUD_VERSION}-${IMAGE_VARIANT}
|
|
||||||
|
|
||||||
if docker_tag_exists ${IMAGE} ${IMAGE_TAG}; then
|
|
||||||
# nothing to do, the image already exists.
|
|
||||||
echo Image ${IMAGE}:${IMAGE_TAG} already exists.
|
|
||||||
else
|
|
||||||
exit 0
|
|
||||||
# image doesn't exist we need build and push
|
|
||||||
echo Image ${IMAGE}:${IMAGE_TAG} does not exist.
|
|
||||||
echo "Building image(s)..."
|
|
||||||
docker build $1 \
|
|
||||||
-t ${IMAGE}:${UPSTREAM_IMAGE_TAG} \
|
|
||||||
-t ${IMAGE}:${IMAGE_TAG}
|
|
||||||
if [ $? == 0 ]; then
|
|
||||||
echo "Pushing image(s)..."
|
|
||||||
docker push ${IMAGE}:${IMAGE_TAG}
|
|
||||||
docker push ${IMAGE}:${UPSTREAM_IMAGE_TAG}
|
|
||||||
else
|
|
||||||
echo "The build operation failed."
|
|
||||||
echo "Please debug and try again."
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -1,39 +0,0 @@
|
||||||
FROM nextcloud:16-fpm
|
|
||||||
MAINTAINER Belman Kraul <bkraul@belmankraul.com>
|
|
||||||
|
|
||||||
RUN set -ex \
|
|
||||||
usermod -u 82 www-data; \
|
|
||||||
groupmod -g 82 www-data; \
|
|
||||||
usermod -g 82 www-data; \
|
|
||||||
# for some reason this needs to be repeated.
|
|
||||||
usermod -u 82 www-data; \
|
|
||||||
chown -R www-data:root /var/www; \
|
|
||||||
chmod -R g=u /var/www
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
apt-get update; \
|
|
||||||
apt-get install -y \
|
|
||||||
libmagickcore-6.q16-3-extra; \
|
|
||||||
rm -rf /var/lib/apt/lists/*;
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
savedAptMark="$(apt-mark showmanual)"; \
|
|
||||||
apt-get update; \
|
|
||||||
apt-get install -y libsmbclient-dev; \
|
|
||||||
pecl install smbclient; \
|
|
||||||
docker-php-ext-enable smbclient; \
|
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
|
||||||
apt-mark auto '.*' > /dev/null; \
|
|
||||||
apt-mark manual $savedAptMark; \
|
|
||||||
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
|
||||||
| awk '/=>/ { print $3 }' \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -r dpkg-query -S \
|
|
||||||
| cut -d: -f1 \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -rt apt-mark manual; \
|
|
||||||
\
|
|
||||||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker pull nextcloud:16-fpm
|
|
||||||
docker build $1\
|
|
||||||
-t bkraul/nextcloud:16-fpm \
|
|
||||||
.
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker push bkraul/nextcloud:16-fpm
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -1,39 +0,0 @@
|
||||||
FROM nextcloud:17-fpm
|
|
||||||
MAINTAINER Belman Kraul <bkraul@belmankraul.com>
|
|
||||||
|
|
||||||
RUN set -ex \
|
|
||||||
usermod -u 82 www-data; \
|
|
||||||
groupmod -g 82 www-data; \
|
|
||||||
usermod -g 82 www-data; \
|
|
||||||
# for some reason this needs to be repeated.
|
|
||||||
usermod -u 82 www-data; \
|
|
||||||
chown -R www-data:root /var/www; \
|
|
||||||
chmod -R g=u /var/www
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
apt-get update; \
|
|
||||||
apt-get install -y \
|
|
||||||
libmagickcore-6.q16-3-extra; \
|
|
||||||
rm -rf /var/lib/apt/lists/*;
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
savedAptMark="$(apt-mark showmanual)"; \
|
|
||||||
apt-get update; \
|
|
||||||
apt-get install -y libsmbclient-dev; \
|
|
||||||
pecl install smbclient; \
|
|
||||||
docker-php-ext-enable smbclient; \
|
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
|
||||||
apt-mark auto '.*' > /dev/null; \
|
|
||||||
apt-mark manual $savedAptMark; \
|
|
||||||
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
|
||||||
| awk '/=>/ { print $3 }' \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -r dpkg-query -S \
|
|
||||||
| cut -d: -f1 \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -rt apt-mark manual; \
|
|
||||||
\
|
|
||||||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker pull nextcloud:17-fpm
|
|
||||||
docker build $1 \
|
|
||||||
-t bkraul/nextcloud:17-fpm \
|
|
||||||
.
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker push bkraul/nextcloud:17-fpm
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -1,38 +0,0 @@
|
||||||
FROM nextcloud:18-fpm
|
|
||||||
|
|
||||||
RUN set -ex \
|
|
||||||
usermod -u 82 www-data; \
|
|
||||||
groupmod -g 82 www-data; \
|
|
||||||
usermod -g 82 www-data; \
|
|
||||||
# for some reason this needs to be repeated.
|
|
||||||
usermod -u 82 www-data; \
|
|
||||||
chown -R www-data:root /var/www; \
|
|
||||||
chmod -R g=u /var/www
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
apt-get update; \
|
|
||||||
apt-get install -y \
|
|
||||||
libmagickcore-6.q16-3-extra; \
|
|
||||||
rm -rf /var/lib/apt/lists/*;
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
savedAptMark="$(apt-mark showmanual)"; \
|
|
||||||
apt-get --allow-unauthenticated update; \
|
|
||||||
apt-get --allow-unauthenticated install -y libsmbclient-dev; \
|
|
||||||
pecl install smbclient; \
|
|
||||||
docker-php-ext-enable smbclient; \
|
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
|
||||||
apt-mark auto '.*' > /dev/null; \
|
|
||||||
apt-mark manual $savedAptMark; \
|
|
||||||
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
|
||||||
| awk '/=>/ { print $3 }' \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -r dpkg-query -S \
|
|
||||||
| cut -d: -f1 \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -rt apt-mark manual; \
|
|
||||||
\
|
|
||||||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker pull nextcloud:18-fpm
|
|
||||||
docker build $1\
|
|
||||||
-t bkraul/nextcloud:18-fpm \
|
|
||||||
.
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker push bkraul/nextcloud:18-fpm
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
47
fpm/19/build
47
fpm/19/build
|
@ -1,47 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# define variables.
|
|
||||||
IMAGE_VARIANT=fpm
|
|
||||||
IMAGE_VERSION=19
|
|
||||||
UPSTREAM_IMAGE=nextcloud
|
|
||||||
UPSTREAM_IMAGE_TAG=${IMAGE_VERSION}-${IMAGE_VARIANT}
|
|
||||||
IMAGE=bkraul/nextcloud
|
|
||||||
|
|
||||||
# set username and password
|
|
||||||
# requires vars DOCKER_USER and DOCKER_PASS to be defined before calling.
|
|
||||||
|
|
||||||
# useful functions.
|
|
||||||
function docker_tag_exists() {
|
|
||||||
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${DOCKER_USER}'", "password": "'${DOCKER_PASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
|
|
||||||
curl --silent -f --head -lL https://hub.docker.com/v2/repositories/$1/tags/$2/ > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# pull the parent image from docker hub.
|
|
||||||
docker pull ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG}
|
|
||||||
UPSTREAM_ID=$(docker image inspect --format='{{index .Id}}' ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG})
|
|
||||||
UPSTREAM_ID=${UPSTREAM_ID:7}
|
|
||||||
|
|
||||||
# get the version number.
|
|
||||||
NEXTCLOUD_VERSION=$(docker inspect ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG} | jq -r '.[].Config.Env[] | select(match("^NEXTCLOUD_VERSION"))')
|
|
||||||
NEXTCLOUD_VERSION=${NEXTCLOUD_VERSION:18}
|
|
||||||
IMAGE_TAG=${NEXTCLOUD_VERSION}-${IMAGE_VARIANT}
|
|
||||||
|
|
||||||
if docker_tag_exists ${IMAGE} ${IMAGE_TAG}; then
|
|
||||||
# nothing to do, the image already exists.
|
|
||||||
echo Image ${IMAGE}:${IMAGE_TAG} already exists.
|
|
||||||
else
|
|
||||||
# image doesn't exist we need build and push
|
|
||||||
echo Image ${IMAGE}:${IMAGE_TAG} does not exist.
|
|
||||||
echo "Building image(s)..."
|
|
||||||
docker build $1 \
|
|
||||||
-t ${IMAGE}:${UPSTREAM_IMAGE_TAG} \
|
|
||||||
-t ${IMAGE}:${IMAGE_TAG}
|
|
||||||
if [ $? == 0 ]; then
|
|
||||||
echo "Pushing image(s)..."
|
|
||||||
docker push ${IMAGE}:${IMAGE_TAG}
|
|
||||||
docker push ${IMAGE}:${UPSTREAM_IMAGE_TAG}
|
|
||||||
else
|
|
||||||
echo "The build operation failed."
|
|
||||||
echo "Please debug and try again."
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -1,38 +0,0 @@
|
||||||
FROM nextcloud:20-fpm
|
|
||||||
|
|
||||||
RUN set -ex \
|
|
||||||
usermod -u 82 www-data; \
|
|
||||||
groupmod -g 82 www-data; \
|
|
||||||
usermod -g 82 www-data; \
|
|
||||||
# for some reason this needs to be repeated.
|
|
||||||
usermod -u 82 www-data; \
|
|
||||||
chown -R www-data:root /var/www; \
|
|
||||||
chmod -R g=u /var/www
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
apt-get update; \
|
|
||||||
apt-get install -y \
|
|
||||||
libmagickcore-6.q16-3-extra; \
|
|
||||||
rm -rf /var/lib/apt/lists/*;
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
savedAptMark="$(apt-mark showmanual)"; \
|
|
||||||
apt-get update; \
|
|
||||||
apt-get install -y libsmbclient-dev; \
|
|
||||||
pecl install smbclient; \
|
|
||||||
docker-php-ext-enable smbclient; \
|
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
|
||||||
apt-mark auto '.*' > /dev/null; \
|
|
||||||
apt-mark manual $savedAptMark; \
|
|
||||||
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
|
||||||
| awk '/=>/ { print $3 }' \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -r dpkg-query -S \
|
|
||||||
| cut -d: -f1 \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -rt apt-mark manual; \
|
|
||||||
\
|
|
||||||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
47
fpm/20/build
47
fpm/20/build
|
@ -1,47 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# define variables.
|
|
||||||
IMAGE_VARIANT=fpm
|
|
||||||
IMAGE_VERSION=20
|
|
||||||
UPSTREAM_IMAGE=nextcloud
|
|
||||||
UPSTREAM_IMAGE_TAG=${IMAGE_VERSION}-${IMAGE_VARIANT}
|
|
||||||
IMAGE=bkraul/nextcloud
|
|
||||||
|
|
||||||
# set username and password
|
|
||||||
# requires vars DOCKER_USER and DOCKER_PASS to be defined before calling.
|
|
||||||
|
|
||||||
# useful functions.
|
|
||||||
function docker_tag_exists() {
|
|
||||||
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${DOCKER_USER}'", "password": "'${DOCKER_PASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
|
|
||||||
curl --silent -f --head -lL https://hub.docker.com/v2/repositories/$1/tags/$2/ > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# pull the parent image from docker hub.
|
|
||||||
docker pull ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG}
|
|
||||||
UPSTREAM_ID=$(docker image inspect --format='{{index .Id}}' ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG})
|
|
||||||
UPSTREAM_ID=${UPSTREAM_ID:7}
|
|
||||||
|
|
||||||
# get the version number.
|
|
||||||
NEXTCLOUD_VERSION=$(docker inspect ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG} | jq -r '.[].Config.Env[] | select(match("^NEXTCLOUD_VERSION"))')
|
|
||||||
NEXTCLOUD_VERSION=${NEXTCLOUD_VERSION:18}
|
|
||||||
IMAGE_TAG=${NEXTCLOUD_VERSION}-${IMAGE_VARIANT}
|
|
||||||
|
|
||||||
if docker_tag_exists ${IMAGE} ${IMAGE_TAG}; then
|
|
||||||
# nothing to do, the image already exists.
|
|
||||||
echo Image ${IMAGE}:${IMAGE_TAG} already exists.
|
|
||||||
else
|
|
||||||
# image doesn't exist we need build and push
|
|
||||||
echo Image ${IMAGE}:${IMAGE_TAG} does not exist.
|
|
||||||
echo "Building image(s)..."
|
|
||||||
docker build $1 \
|
|
||||||
-t ${IMAGE}:${UPSTREAM_IMAGE_TAG} \
|
|
||||||
-t ${IMAGE}:${IMAGE_TAG}
|
|
||||||
if [ $? == 0 ]; then
|
|
||||||
echo "Pushing image(s)..."
|
|
||||||
docker push ${IMAGE}:${IMAGE_TAG}
|
|
||||||
docker push ${IMAGE}:${UPSTREAM_IMAGE_TAG}
|
|
||||||
else
|
|
||||||
echo "The build operation failed."
|
|
||||||
echo "Please debug and try again."
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -1,38 +0,0 @@
|
||||||
FROM nextcloud:21-fpm
|
|
||||||
|
|
||||||
RUN set -ex \
|
|
||||||
usermod -u 82 www-data; \
|
|
||||||
groupmod -g 82 www-data; \
|
|
||||||
usermod -g 82 www-data; \
|
|
||||||
# for some reason this needs to be repeated.
|
|
||||||
usermod -u 82 www-data; \
|
|
||||||
chown -R www-data:root /var/www; \
|
|
||||||
chmod -R g=u /var/www
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
apt-get update; \
|
|
||||||
apt-get install -y \
|
|
||||||
libmagickcore-6.q16-3-extra; \
|
|
||||||
rm -rf /var/lib/apt/lists/*;
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
savedAptMark="$(apt-mark showmanual)"; \
|
|
||||||
apt-get update; \
|
|
||||||
apt-get install -y libsmbclient-dev; \
|
|
||||||
pecl install smbclient; \
|
|
||||||
docker-php-ext-enable smbclient; \
|
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
|
||||||
apt-mark auto '.*' > /dev/null; \
|
|
||||||
apt-mark manual $savedAptMark; \
|
|
||||||
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
|
||||||
| awk '/=>/ { print $3 }' \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -r dpkg-query -S \
|
|
||||||
| cut -d: -f1 \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -rt apt-mark manual; \
|
|
||||||
\
|
|
||||||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
46
fpm/21/build
46
fpm/21/build
|
@ -1,46 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# define variables.
|
|
||||||
IMAGE_VARIANT=fpm
|
|
||||||
IMAGE_VERSION=21
|
|
||||||
UPSTREAM_IMAGE=nextcloud
|
|
||||||
UPSTREAM_IMAGE_TAG=${IMAGE_VERSION}-${IMAGE_VARIANT}
|
|
||||||
IMAGE=bkraul/nextcloud
|
|
||||||
|
|
||||||
# set username and password
|
|
||||||
# requires vars DOCKER_USER and DOCKER_PASS to be defined before calling.
|
|
||||||
|
|
||||||
# useful functions.
|
|
||||||
function docker_tag_exists() {
|
|
||||||
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${DOCKER_USER}'", "password": "'${DOCKER_PASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
|
|
||||||
curl --silent -f --head -lL https://hub.docker.com/v2/repositories/$1/tags/$2/ > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# pull the parent image from docker hub.
|
|
||||||
docker pull ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG}
|
|
||||||
UPSTREAM_ID=$(docker image inspect --format='{{index .Id}}' ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG})
|
|
||||||
UPSTREAM_ID=${UPSTREAM_ID:7}
|
|
||||||
|
|
||||||
# get the version number.
|
|
||||||
NEXTCLOUD_VERSION=$(docker inspect ${UPSTREAM_IMAGE}:${UPSTREAM_IMAGE_TAG} | jq -r '.[].Config.Env[] | select(match("^NEXTCLOUD_VERSION"))')
|
|
||||||
NEXTCLOUD_VERSION=${NEXTCLOUD_VERSION:18}
|
|
||||||
IMAGE_TAG=${NEXTCLOUD_VERSION}-${IMAGE_VARIANT}
|
|
||||||
|
|
||||||
if docker_tag_exists ${IMAGE} ${IMAGE_TAG}; then
|
|
||||||
# nothing to do, the image already exists.
|
|
||||||
echo Image ${IMAGE}:${IMAGE_TAG} already exists.
|
|
||||||
else
|
|
||||||
# image doesn't exist we need build and push
|
|
||||||
echo Image ${IMAGE}:${IMAGE_TAG} does not exist.
|
|
||||||
echo "Building image(s)..."
|
|
||||||
docker build $1 \
|
|
||||||
-t ${IMAGE}:${UPSTREAM_IMAGE_TAG} \
|
|
||||||
-t ${IMAGE}:${IMAGE_TAG}
|
|
||||||
if [ $? == 0 ]; then
|
|
||||||
echo "Pushing image(s)..."
|
|
||||||
docker push ${IMAGE}:${IMAGE_TAG}
|
|
||||||
docker push ${IMAGE}:${UPSTREAM_IMAGE_TAG}
|
|
||||||
else
|
|
||||||
echo "The build operation failed."
|
|
||||||
echo "Please debug and try again."
|
|
||||||
fi
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
Loading…
Reference in New Issue
Block a user