From d2c12a2a10f5e828b74bdd9a9bff61b33b513a24 Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Tue, 21 May 2019 02:02:53 +0200 Subject: [PATCH] Add caddy custom docker image build scripts --- caddy_docker_custom_user/Caddyfile | 11 +++ caddy_docker_custom_user/Dockerfile | 98 +++++++++++++++++++ caddy_docker_custom_user/create.sh | 9 ++ .../create_docker_container.sh | 16 +++ caddy_docker_custom_user/index.php | 22 +++++ 5 files changed, 156 insertions(+) create mode 100644 caddy_docker_custom_user/Caddyfile create mode 100644 caddy_docker_custom_user/Dockerfile create mode 100644 caddy_docker_custom_user/create.sh create mode 100755 caddy_docker_custom_user/create_docker_container.sh create mode 100644 caddy_docker_custom_user/index.php diff --git a/caddy_docker_custom_user/Caddyfile b/caddy_docker_custom_user/Caddyfile new file mode 100644 index 0000000..900c304 --- /dev/null +++ b/caddy_docker_custom_user/Caddyfile @@ -0,0 +1,11 @@ +0.0.0.0 + +browse + +fastcgi / 127.0.0.1:9000 php + +on startup php-fpm7 + +log stdout + +errors stdout diff --git a/caddy_docker_custom_user/Dockerfile b/caddy_docker_custom_user/Dockerfile new file mode 100644 index 0000000..0587dd4 --- /dev/null +++ b/caddy_docker_custom_user/Dockerfile @@ -0,0 +1,98 @@ +# +# Builder +# +FROM abiosoft/caddy:builder as builder + +ARG version="1.0.0" +ARG plugins="git,cors,realip,expires,cache" + +# process wrapper +RUN go get -v github.com/abiosoft/parent + +RUN VERSION=${version} PLUGINS=${plugins} /bin/sh /usr/bin/builder.sh + +# +# Final stage +# +FROM alpine:3.8 +LABEL maintainer "Abiola Ibrahim " + +ARG version="1.0.0" +LABEL caddy_version="$version" + +# PHP www-user UID and GID +ARG PUID="1000" +ARG PGID="1000" + +# Let's Encrypt Agreement +ENV ACME_AGREE="false" + +RUN apk add --no-cache openssh-client git tar php7-fpm curl + +# essential php libs +RUN apk add --no-cache \ + php7-bcmath \ + php7-ctype \ + php7-curl \ + php7-dom \ + php7-fileinfo \ + php7-gd \ + php7-iconv \ + php7-json \ + php7-mbstring \ + php7-mysqli \ + php7-openssl \ + php7-pdo \ + php7-pdo_mysql \ + php7-pgsql \ + php7-phar \ + php7-session \ + php7-simplexml \ + php7-sqlite3 \ + php7-tokenizer \ + php7-xml \ + php7-xmlreader \ + php7-xmlwriter \ + php7-zip + +# symblink php7 to php +RUN ln -sf /usr/bin/php7 /usr/bin/php + +# symlink php-fpm7 to php-fpm +RUN ln -sf /usr/bin/php-fpm7 /usr/bin/php-fpm + +# add a php www-user instead of nobody +RUN addgroup -g ${PGID} www-user && \ + adduser -D -H -u ${PUID} -G www-user www-user && \ + sed -i "s|^user = .*|user = www-user|g" /etc/php7/php-fpm.d/www.conf && \ + sed -i "s|^group = .*|group = www-user|g" /etc/php7/php-fpm.d/www.conf + +# composer +RUN curl --silent --show-error --fail --location \ + --header "Accept: application/tar+gzip, application/x-gzip, application/octet-stream" \ + "https://getcomposer.org/installer" \ + | php -- --install-dir=/usr/bin --filename=composer + +# allow environment variable access. +RUN echo "clear_env = no" >> /etc/php7/php-fpm.conf + +# install caddy +COPY --from=builder /install/caddy /usr/bin/caddy + +# validate install +RUN /usr/bin/caddy -version +RUN /usr/bin/caddy -plugins + + +EXPOSE 80 443 2015 +VOLUME /root/.caddy /srv +WORKDIR /srv + +COPY Caddyfile /etc/Caddyfile +COPY index.php /srv/index.php + +# install process wrapper +COPY --from=builder /go/bin/parent /bin/parent + +ENTRYPOINT ["/bin/parent", "caddy"] +CMD ["--conf", "/etc/Caddyfile", "--log", "stdout", "--agree=$ACME_AGREE"] diff --git a/caddy_docker_custom_user/create.sh b/caddy_docker_custom_user/create.sh new file mode 100644 index 0000000..ff48e83 --- /dev/null +++ b/caddy_docker_custom_user/create.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +if [ $# -eq 0 ] +then + echo "Usage: