From 1e66df30a1c84ef910e3853c6ae5ce7ff11b36b7 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Sat, 3 Jul 2021 23:00:45 +0100 Subject: [PATCH] Refactor the production Docker image --- docker-compose.production.yaml | 23 +------------------ docker-compose.yaml | 9 ++++---- tools/docker/images/Dockerfile | 21 +++++++++++++++++ tools/docker/images/nginx/Dockerfile | 2 -- .../nginx/root/etc/nginx/conf.d/default.conf | 1 - tools/docker/images/node/Dockerfile | 4 ---- 6 files changed, 27 insertions(+), 33 deletions(-) create mode 100644 tools/docker/images/Dockerfile delete mode 100644 tools/docker/images/nginx/Dockerfile delete mode 100644 tools/docker/images/node/Dockerfile diff --git a/docker-compose.production.yaml b/docker-compose.production.yaml index 89b50f348..d83c650d7 100644 --- a/docker-compose.production.yaml +++ b/docker-compose.production.yaml @@ -2,28 +2,7 @@ version: '2.4' services: web: - build: - context: . - dockerfile: tools/docker/images/nginx/Dockerfile - volumes: - - html:/app + image: oliverdavies-uk-web ports: - 80:80 - depends_on: - - app - - assets restart: always - - app: - volumes: - - assets:/app/source/build - - html:/app/output_prod - - .:/app - command: generate -e prod - - assets: - entrypoint: npm - command: run production - -volumes: - html: diff --git a/docker-compose.yaml b/docker-compose.yaml index 9a1673c5d..fc426e980 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -2,7 +2,10 @@ version: '2.4' services: app: - image: opdavies/sculpin-serve + build: + context: . + dockerfile: tools/docker/images/Dockerfile + target: app volumes: - assets:/app/source/build - /app/output_dev @@ -11,9 +14,7 @@ services: - 8000:8000 assets: - build: - context: . - dockerfile: tools/docker/images/node/Dockerfile + image: node:14 volumes: - assets:/node/source/build - /node/node_modules diff --git a/tools/docker/images/Dockerfile b/tools/docker/images/Dockerfile new file mode 100644 index 000000000..8d81ff413 --- /dev/null +++ b/tools/docker/images/Dockerfile @@ -0,0 +1,21 @@ +FROM opdavies/sculpin-serve AS app +WORKDIR /app +COPY composer.* ./ +RUN composer install +COPY app app +COPY source source +RUN sculpin generate -e prod + +FROM node:14 AS assets +WORKDIR /node +COPY package.json . +COPY package-lock.json . +RUN npm ci +COPY . . +RUN npm run production + +FROM nginx AS nginx +COPY tools/docker/images/nginx/root / +WORKDIR /app +COPY --from=app /app/output_prod ./ +COPY --from=assets /node/source/build build diff --git a/tools/docker/images/nginx/Dockerfile b/tools/docker/images/nginx/Dockerfile deleted file mode 100644 index e38b54ec3..000000000 --- a/tools/docker/images/nginx/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM nginx:1 as base -COPY tools/docker/images/nginx/root / diff --git a/tools/docker/images/nginx/root/etc/nginx/conf.d/default.conf b/tools/docker/images/nginx/root/etc/nginx/conf.d/default.conf index 177159ced..3c54b752d 100644 --- a/tools/docker/images/nginx/root/etc/nginx/conf.d/default.conf +++ b/tools/docker/images/nginx/root/etc/nginx/conf.d/default.conf @@ -603,4 +603,3 @@ server { rewrite ^/wp-tailwind-static$ https://wp-tailwind.oliverdavies.uk; rewrite ^/yXhoS$ /talks/things-you-should-know-about-php; } - diff --git a/tools/docker/images/node/Dockerfile b/tools/docker/images/node/Dockerfile deleted file mode 100644 index abe349129..000000000 --- a/tools/docker/images/node/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM node:14 AS base -WORKDIR /node -COPY package*.json ./ -RUN npm install