From 8ed3ed3a77a46997e5afa8915bb9ee77c8caf249 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Sun, 12 Aug 2018 16:23:35 +0200 Subject: Moved docker files to contrib, added documentation --- Dockerfile | 31 ------------------------------- Dockerfile-proxy | 2 -- README.md | 13 +++++++++++++ contrib/Dockerfile | 31 +++++++++++++++++++++++++++++++ contrib/docker-compose.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++ contrib/nginx/Dockerfile | 2 ++ contrib/nginx/nginx.conf | 35 +++++++++++++++++++++++++++++++++++ docker-compose.yml | 37 ------------------------------------- nginx.conf | 35 ----------------------------------- 9 files changed, 126 insertions(+), 105 deletions(-) delete mode 100644 Dockerfile delete mode 100644 Dockerfile-proxy create mode 100644 contrib/Dockerfile create mode 100644 contrib/docker-compose.yml create mode 100644 contrib/nginx/Dockerfile create mode 100644 contrib/nginx/nginx.conf delete mode 100644 docker-compose.yml delete mode 100644 nginx.conf diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index a45633f5..00000000 --- a/Dockerfile +++ /dev/null @@ -1,31 +0,0 @@ -FROM composer AS composer -COPY composer.json /app/ -RUN composer install - - -FROM node:8-alpine as themes -WORKDIR /app -RUN npm install -g less -COPY --from=composer /app/vendor /app/vendor -COPY public/ /app/public -COPY themes/ /app/themes -RUN sh /app/themes/build-themes.sh - -FROM php:7-fpm-alpine -RUN apk add --no-cache icu-dev -RUN docker-php-ext-install intl -RUN apk add --no-cache gettext-dev -RUN docker-php-ext-install gettext -RUN docker-php-ext-install pdo_mysql - -COPY --from=composer /app/vendor /var/www/vendor -COPY --from=themes /app/public/ /var/www/html -COPY src/ /var/www/src/ -COPY includes/ /var/www/includes/ -COPY config/ /var/www/config/ -COPY locale/ /var/www/locale -COPY templates/ /var/www/templates - -# Symlink gets copied so we delete the symlink. -RUN rm /var/www/html/vendor/bootstrap -COPY vendor/twbs/bootstrap/dist/ /var/www/html/vendor/bootstrap/ diff --git a/Dockerfile-proxy b/Dockerfile-proxy deleted file mode 100644 index b846f218..00000000 --- a/Dockerfile-proxy +++ /dev/null @@ -1,2 +0,0 @@ -FROM nginx:alpine -COPY nginx.conf /etc/nginx/nginx.conf diff --git a/README.md b/README.md index 248adff0..158fa8c1 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,19 @@ PRODUCTION_REMOTE # Same as STAGING_REMOTE but for the production environm PRODUCTION_REMOTE_PATH # Same as STAGING_REMOTE_PATH but for the production environment ``` +### Docker container +To build the `engelsystem` and the `engelsystem-nginx` container: +```bash +cd contrib +docker-compose build +``` + +or to build the containers separately +```bash +docker build -f contrib/Dockerfile . -t engelsystem +docker build -f contrib/nginx/Dockerfile . -t engelsystem-nginx +``` + #### deploy.sh The `deploy.sh` script can be used to deploy the engelsystem. It uses rsync to deploy the application to a server over ssh. diff --git a/contrib/Dockerfile b/contrib/Dockerfile new file mode 100644 index 00000000..a45633f5 --- /dev/null +++ b/contrib/Dockerfile @@ -0,0 +1,31 @@ +FROM composer AS composer +COPY composer.json /app/ +RUN composer install + + +FROM node:8-alpine as themes +WORKDIR /app +RUN npm install -g less +COPY --from=composer /app/vendor /app/vendor +COPY public/ /app/public +COPY themes/ /app/themes +RUN sh /app/themes/build-themes.sh + +FROM php:7-fpm-alpine +RUN apk add --no-cache icu-dev +RUN docker-php-ext-install intl +RUN apk add --no-cache gettext-dev +RUN docker-php-ext-install gettext +RUN docker-php-ext-install pdo_mysql + +COPY --from=composer /app/vendor /var/www/vendor +COPY --from=themes /app/public/ /var/www/html +COPY src/ /var/www/src/ +COPY includes/ /var/www/includes/ +COPY config/ /var/www/config/ +COPY locale/ /var/www/locale +COPY templates/ /var/www/templates + +# Symlink gets copied so we delete the symlink. +RUN rm /var/www/html/vendor/bootstrap +COPY vendor/twbs/bootstrap/dist/ /var/www/html/vendor/bootstrap/ diff --git a/contrib/docker-compose.yml b/contrib/docker-compose.yml new file mode 100644 index 00000000..9048fb49 --- /dev/null +++ b/contrib/docker-compose.yml @@ -0,0 +1,45 @@ +version: "3.6" +services: + nginx: + image: engelsystem-nginx + build: + context: .. + dockerfile: contrib/nginx/Dockerfile + ports: + - 5000:80 + volumes: + - static:/var/www/html + depends_on: + - engelsystem + engelsystem: + image: engelsystem + build: + context: .. + dockerfile: contrib/Dockerfile + environment: + MYSQL_HOST: database + MYSQL_USER: engelsystem + MYSQL_PASSWORD: engelsystem + MYSQL_DATABASE: engelsystem + volumes: + - static:/var/www/html + depends_on: + - database + database: + image: mariadb:latest + environment: + MYSQL_DATABASE: engelsystem + MYSQL_USER: engelsystem + MYSQL_PASSWORD: engelsystem + MYSQL_RANDOM_ROOT_PASSWORD: 1 + volumes: + - db:/var/lib/mysql + # used for initial database stuff + # adminer: + # image: adminer + # restart: always + # ports: + # - 8080:8080 +volumes: + db: {} + static: {} diff --git a/contrib/nginx/Dockerfile b/contrib/nginx/Dockerfile new file mode 100644 index 00000000..a06ea3e7 --- /dev/null +++ b/contrib/nginx/Dockerfile @@ -0,0 +1,2 @@ +FROM nginx:alpine +COPY contrib/nginx/nginx.conf /etc/nginx/nginx.conf diff --git a/contrib/nginx/nginx.conf b/contrib/nginx/nginx.conf new file mode 100644 index 00000000..bbaf5824 --- /dev/null +++ b/contrib/nginx/nginx.conf @@ -0,0 +1,35 @@ +error_log stderr; +events { + worker_connections 1024; +} +http { + client_body_temp_path /tmp/client_body_temp; + fastcgi_temp_path /tmp/fastcgi_temp; + proxy_temp_path /tmp/proxy_temp; + scgi_temp_path /tmp/scgi_temp; + uwsgi_temp_path /tmp/uwsgi_temp; + + server { + include mime.types; + access_log off; + listen [::]:80 ipv6only=off; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + index index.php; + root /var/www/html; + + location / { + try_files $uri $uri/ /index.php?$args; + } + + location ~ \.php$ { + fastcgi_pass engelsystem:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param HTTPS on; + include fastcgi_params; + } + } +} diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index de18805e..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,37 +0,0 @@ -version: "3.3" -services: - nginx: - build: - context: . - dockerfile: Dockerfile-proxy - ports: - - 5000:80 - volumes: - - static:/var/www/html - engelsystem: - build: ./ - environment: - MYSQL_HOST: db - MYSQL_USER: engelsystem - MYSQL_PASSWORD: engelsystem - MYSQL_DATABASE: engelsystem - volumes: - - static:/var/www/html - db: - image: mariadb:latest - environment: - MYSQL_DATABASE: engelsystem - MYSQL_USER: engelsystem - MYSQL_PASSWORD: engelsystem - MYSQL_RANDOM_ROOT_PASSWORD: 1 - volumes: - - db:/var/lib/mysql - # used for initial database stuff - # adminer: - # image: adminer - # restart: always - # ports: - # - 8080:8080 -volumes: - db: {} - static: {} \ No newline at end of file diff --git a/nginx.conf b/nginx.conf deleted file mode 100644 index bbaf5824..00000000 --- a/nginx.conf +++ /dev/null @@ -1,35 +0,0 @@ -error_log stderr; -events { - worker_connections 1024; -} -http { - client_body_temp_path /tmp/client_body_temp; - fastcgi_temp_path /tmp/fastcgi_temp; - proxy_temp_path /tmp/proxy_temp; - scgi_temp_path /tmp/scgi_temp; - uwsgi_temp_path /tmp/uwsgi_temp; - - server { - include mime.types; - access_log off; - listen [::]:80 ipv6only=off; - proxy_redirect off; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - index index.php; - root /var/www/html; - - location / { - try_files $uri $uri/ /index.php?$args; - } - - location ~ \.php$ { - fastcgi_pass engelsystem:9000; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param HTTPS on; - include fastcgi_params; - } - } -} -- cgit v1.2.3-54-g00ecf