Avoid duplicating Dockerfiles for each architecture

- Use build args instead of duplicating the Dockerfile
- Upgrade to Alpine Linux 3.11
This commit is contained in:
Frédéric Guillot 2019-12-28 13:15:16 -08:00
parent d983c113da
commit cce083a8ed
5 changed files with 7 additions and 77 deletions

View File

@ -1,4 +1,6 @@
FROM alpine:3.10.3
ARG BASE_IMAGE_ARCH="amd64"
FROM ${BASE_IMAGE_ARCH}/alpine:3.11
VOLUME /var/www/app/data
VOLUME /var/www/app/plugins

View File

@ -1,24 +0,0 @@
FROM arm32v6/alpine:3.10.3
VOLUME /var/www/app/data
VOLUME /var/www/app/plugins
VOLUME /etc/nginx/ssl
EXPOSE 80 443
ARG VERSION
RUN apk --no-cache --update add openssl unzip nginx bash ca-certificates s6 curl ssmtp mailx php7 php7-phar php7-curl \
php7-fpm php7-json php7-zlib php7-xml php7-dom php7-ctype php7-opcache php7-zip php7-iconv \
php7-pdo php7-pdo_mysql php7-pdo_sqlite php7-pdo_pgsql php7-mbstring php7-session php7-bcmath \
php7-gd php7-mcrypt php7-openssl php7-sockets php7-posix php7-ldap php7-simplexml && \
rm -rf /var/www/localhost && \
rm -f /etc/php7/php-fpm.d/www.conf
ADD . /var/www/app
ADD docker/ /
RUN rm -rf /var/www/app/docker && echo $VERSION > /version.txt
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD []

View File

@ -1,24 +0,0 @@
FROM arm32v7/alpine:3.10.3
VOLUME /var/www/app/data
VOLUME /var/www/app/plugins
VOLUME /etc/nginx/ssl
EXPOSE 80 443
ARG VERSION
RUN apk --no-cache --update add openssl unzip nginx bash ca-certificates s6 curl ssmtp mailx php7 php7-phar php7-curl \
php7-fpm php7-json php7-zlib php7-xml php7-dom php7-ctype php7-opcache php7-zip php7-iconv \
php7-pdo php7-pdo_mysql php7-pdo_sqlite php7-pdo_pgsql php7-mbstring php7-session php7-bcmath \
php7-gd php7-mcrypt php7-openssl php7-sockets php7-posix php7-ldap php7-simplexml && \
rm -rf /var/www/localhost && \
rm -f /etc/php7/php-fpm.d/www.conf
ADD . /var/www/app
ADD docker/ /
RUN rm -rf /var/www/app/docker && echo $VERSION > /version.txt
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD []

View File

@ -1,24 +0,0 @@
FROM arm64v8/alpine:3.10.3
VOLUME /var/www/app/data
VOLUME /var/www/app/plugins
VOLUME /etc/nginx/ssl
EXPOSE 80 443
ARG VERSION
RUN apk --no-cache --update add openssl unzip nginx bash ca-certificates s6 curl ssmtp mailx php7 php7-phar php7-curl \
php7-fpm php7-json php7-zlib php7-xml php7-dom php7-ctype php7-opcache php7-zip php7-iconv \
php7-pdo php7-pdo_mysql php7-pdo_sqlite php7-pdo_pgsql php7-mbstring php7-session php7-bcmath \
php7-gd php7-mcrypt php7-openssl php7-sockets php7-posix php7-ldap php7-simplexml && \
rm -rf /var/www/localhost && \
rm -f /etc/php7/php-fpm.d/www.conf
ADD . /var/www/app
ADD docker/ /
RUN rm -rf /var/www/app/docker && echo $VERSION > /version.txt
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD []

View File

@ -69,10 +69,10 @@ docker-image:
docker-manifest:
for version in $(VERSION) latest; do \
docker build --build-arg VERSION=$(VERSION) -t $(DOCKER_IMAGE):amd64-$${version} -f Dockerfile . && \
docker build --build-arg VERSION=$(VERSION) -t $(DOCKER_IMAGE):arm32v6-$${version} -f Dockerfile.arm32v6 . && \
docker build --build-arg VERSION=$(VERSION) -t $(DOCKER_IMAGE):arm32v7-$${version} -f Dockerfile.arm32v7 . && \
docker build --build-arg VERSION=$(VERSION) -t $(DOCKER_IMAGE):arm64v8-$${version} -f Dockerfile.arm64v8 . && \
docker build --build-arg VERSION=$(VERSION) --build-arg BASE_IMAGE_ARCH=amd64 -t $(DOCKER_IMAGE):amd64-$${version} . && \
docker build --build-arg VERSION=$(VERSION) --build-arg BASE_IMAGE_ARCH=arm32v6 -t $(DOCKER_IMAGE):arm32v6-$${version} . && \
docker build --build-arg VERSION=$(VERSION) --build-arg BASE_IMAGE_ARCH=arm32v7 -t $(DOCKER_IMAGE):arm32v7-$${version} . && \
docker build --build-arg VERSION=$(VERSION) --build-arg BASE_IMAGE_ARCH=arm64v8 -t $(DOCKER_IMAGE):arm64v8-$${version} . && \
docker push $(DOCKER_IMAGE):amd64-$${version} && \
docker push $(DOCKER_IMAGE):arm32v6-$${version} && \
docker push $(DOCKER_IMAGE):arm32v7-$${version} && \