From 1fec6737280bfc4cdb179992838e0f1ee24cedfd Mon Sep 17 00:00:00 2001 From: Moritz Heiber Date: Thu, 31 May 2018 21:43:14 +0200 Subject: [PATCH] Replaced docker-compose.yml, run composer as root, create needed directories for application storage, revert changes to nginx.conf --- Dockerfile | 25 +++++++-------- contrib/nginx.conf | 2 +- docker-compose-running.yml | 64 -------------------------------------- docker-compose.yml | 55 +++++++++++++++++++++++--------- 4 files changed, 52 insertions(+), 94 deletions(-) delete mode 100644 docker-compose-running.yml diff --git a/Dockerfile b/Dockerfile index bbb285efb..c9ee294a0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,23 +12,20 @@ RUN apk add --no-cache --virtual .build build-base autoconf imagemagick-dev libt echo "${COMPOSER_CHECKSUM} /tmp/composer.phar" | sha256sum -c - && \ install -m0755 -o root -g root /tmp/composer.phar /usr/bin/composer.phar && \ ln -sf /usr/bin/composer.phar /usr/bin/composer && \ - mkdir -p /var/www && \ - install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed \ - /var/www/html/pixelfed/storage \ - /var/www/html/pixelfed/storage/framework \ - /var/www/html/pixelfed/storage/logs \ - /var/www/html/pixelfed/storage/framework/sessions \ - /var/www/html/pixelfed/storage/framework/views \ - /var/www/html/pixelfed/storage/framework/cache && \ rm /tmp/composer.phar && \ - apk del --purge .build + apk --no-cache del --purge .build -COPY --chown=www-data . /var/www/html/pixelfed/ +COPY . /var/www/html/ -WORKDIR /var/www/html/pixelfed -USER www-data -RUN composer install --prefer-source --no-interaction +WORKDIR /var/www/html +RUN install -d -m0755 -o www-data -g www-data \ + /var/www/html/storage \ + /var/www/html/storage/framework \ + /var/www/html/storage/logs \ + /var/www/html/storage/framework/sessions \ + /var/www/html/storage/framework/views \ + /var/www/html/storage/framework/cache && \ + composer install --prefer-source --no-interaction VOLUME ["/var/www/html"] -USER root ENV PATH="~/.composer/vendor/bin:./vendor/bin:${PATH}" diff --git a/contrib/nginx.conf b/contrib/nginx.conf index 39cfbdf4d..c39103d5a 100644 --- a/contrib/nginx.conf +++ b/contrib/nginx.conf @@ -4,7 +4,7 @@ server { server_name localhost; index index.php index.html; - root /var/www/html/pixelfed/public; + root /var/www/html/public; location / { try_files $uri $uri/ /index.php; diff --git a/docker-compose-running.yml b/docker-compose-running.yml deleted file mode 100644 index 8e9ccd4c1..000000000 --- a/docker-compose-running.yml +++ /dev/null @@ -1,64 +0,0 @@ ---- -version: '3' -services: - nginx: - image: nginx:alpine - networks: - - internal - - external - ports: - - 3000:80 - volumes: - - "php-storage:/var/www/html" - - ./contrib/nginx.conf:/etc/nginx/conf.d/default.conf - depends_on: - - php - - php: - build: . - image: pixelfed - volumes: - - "php-storage:/var/www/html" - networks: - - internal - environment: - - DB_HOST=mysql - - DB_DATABASE=pixelfed - - DB_USERNAME=${DB_USERNAME:-pixelfed} - - DB_PASSWORD=${DB_PASSWORD:-pixelfed} - - REDIS_HOST=redis - - APP_KEY=${APP_KEY} - env_file: - - ./.env - - mysql: - image: mysql:5.7 - networks: - - internal - environment: - - MYSQL_DATABASE=pixelfed - - MYSQL_USER=${DB_USERNAME:-pixelfed} - - MYSQL_PASSWORD=${DB_PASSWORD:-pixelfed} - - MYSQL_RANDOM_ROOT_PASSWORD="true" - env_file: - - ./.env - volumes: - - "mysql-data:/var/lib/mysql" - - redis: - image: redis:alpine - volumes: - - "redis-data:/data" - networks: - - internal - -volumes: - redis-data: - mysql-data: - php-storage: - -networks: - internal: - internal: true - external: - driver: bridge diff --git a/docker-compose.yml b/docker-compose.yml index d9c39bd2f..8e9ccd4c1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,37 +3,62 @@ version: '3' services: nginx: image: nginx:alpine + networks: + - internal + - external ports: - - 3000:80 + - 3000:80 volumes: - - .:/var/www/html - - ./contrib/nginx.conf:/etc/nginx/conf.d/default.conf + - "php-storage:/var/www/html" + - ./contrib/nginx.conf:/etc/nginx/conf.d/default.conf depends_on: - - php + - php + php: build: . + image: pixelfed volumes: - - ./storage:/var/www/html/storage - depends_on: - - mysql - - redis + - "php-storage:/var/www/html" + networks: + - internal environment: - DB_HOST=mysql - DB_DATABASE=pixelfed - - DB_USERNAME=${DB_USERNAME} - - DB_PASSWORD=${DB_PASSWORD} + - DB_USERNAME=${DB_USERNAME:-pixelfed} + - DB_PASSWORD=${DB_PASSWORD:-pixelfed} - REDIS_HOST=redis - APP_KEY=${APP_KEY} + env_file: + - ./.env + mysql: image: mysql:5.7 + networks: + - internal environment: - MYSQL_DATABASE=pixelfed - - MYSQL_USER=${DB_USERNAME} - - MYSQL_PASSWORD=${DB_PASSWORD} + - MYSQL_USER=${DB_USERNAME:-pixelfed} + - MYSQL_PASSWORD=${DB_PASSWORD:-pixelfed} + - MYSQL_RANDOM_ROOT_PASSWORD="true" + env_file: + - ./.env volumes: - - ./docker-volumes/mysql:/var/lib/mysql + - "mysql-data:/var/lib/mysql" + redis: image: redis:alpine volumes: - - ./docker-volumes/redis:/data -... + - "redis-data:/data" + networks: + - internal + +volumes: + redis-data: + mysql-data: + php-storage: + +networks: + internal: + internal: true + external: + driver: bridge