initial Docker stuff

This commit is contained in:
marudor 2018-02-08 22:56:44 +01:00 committed by msquare
parent d243090fea
commit 2391952437
4 changed files with 104 additions and 0 deletions

31
Dockerfile Normal file
View File

@ -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/

2
Dockerfile-proxy Normal file
View File

@ -0,0 +1,2 @@
FROM nginx:alpine
COPY nginx.conf /etc/nginx/nginx.conf

37
docker-compose.yml Normal file
View File

@ -0,0 +1,37 @@
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: {}

34
nginx.conf Normal file
View File

@ -0,0 +1,34 @@
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;
}
location ~ \.php$ {
fastcgi_pass engelsystem:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}