diff --git a/Dockerfile b/Dockerfile index 6637cab..7de027e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -56,10 +56,10 @@ WORKDIR /var/www/html COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh RUN chmod +x /usr/local/bin/docker-entrypoint.sh -COPY --chown=app:app . . +COPY --chown=app:app . /app-source -COPY --from=composer --chown=app:app /app/vendor ./vendor -COPY --from=node-build --chown=app:app /app/public/build ./public/build +COPY --from=composer --chown=app:app /app/vendor /app-source/vendor +COPY --from=node-build --chown=app:app /app/public/build /app-source/public/build ENTRYPOINT ["docker-entrypoint.sh"] CMD ["php-fpm"] diff --git a/docker-compose.yml b/docker-compose.yml index e4e4086..8e0c02e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,6 +22,7 @@ services: context: . dockerfile: Dockerfile volumes: + - app-source:/var/www/html - app-storage:/var/www/html/storage - app-photos:/var/www/html/public/photos environment: @@ -49,12 +50,14 @@ services: context: . dockerfile: Dockerfile.nginx volumes: + - app-source:/var/www/html:ro - app-photos:/var/www/html/public/photos:ro depends_on: - app restart: unless-stopped volumes: + app-source: mariadb_data: app-storage: app-photos: diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 42649bb..5560c99 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -14,6 +14,12 @@ if [ "$(id -u)" = "0" ]; then chown -R app:app /var/www/html/storage /var/www/html/public/photos fi +# Sync app source from image to volume +if [ -d /app-source ]; then + echo "Syncing app source to volume..." + cp -a /app-source/. /var/www/html/ +fi + # 1. Wait for MySQL echo "Waiting for MySQL..." for i in $(seq 1 30); do