瀏覽代碼

Replaced docker-compose.yml, run composer as root, create needed directories for application storage, revert changes to nginx.conf

Moritz Heiber 7 年之前
父節點
當前提交
1fec673728
共有 4 個文件被更改,包括 52 次插入94 次删除
  1. 11 14
      Dockerfile
  2. 1 1
      contrib/nginx.conf
  3. 0 64
      docker-compose-running.yml
  4. 40 15
      docker-compose.yml

+ 11 - 14
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}"

+ 1 - 1
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;

+ 0 - 64
docker-compose-running.yml

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

+ 40 - 15
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