From cb31e41c93a7e5f0e07137522da09feef5e87379 Mon Sep 17 00:00:00 2001 From: cellarspoon Date: Fri, 31 Dec 2021 10:10:39 +0100 Subject: [PATCH] add deployment --- .dockerignore | 3 +++ .gitignore | 6 +++--- Dockerfile | 11 +++++++++++ README.md | 17 ++++++++++++++++- compose.yml | 22 ++++++++++++++++++++++ 5 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b2cc30f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +.git +node_modules +public diff --git a/.gitignore b/.gitignore index 8f187f0..4fb2bb1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ +*.lock +.netlify +TODO node_modules public resources -# Local Netlify folder -.netlify -TODO \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c7fdfc8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM node:16-bullseye-slim + +WORKDIR src + +COPY . /src/ + +RUN npm install + +EXPOSE 1313 + +CMD ["npm", "run", "start"] diff --git a/README.md b/README.md index 03ae5a7..e160b64 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,19 @@ > WIP: proof-of-concept for a new home site -`npm install & npm run start` (requires node 16.x, npm 8.x, see [`nvm`](https://github.com/nvm-sh/nvm)). +## Hacking + +`npm install & npm run start` + +Requires node 16.x, npm 8.x, see [`nvm`](https://github.com/nvm-sh/nvm)). + +## Deploy + +``` +docker build -t thecoopcloud/beta.coopcloud.tech . +docker push thecoopcloud/beta.coopcloud.tech +docker context use mellor.coopcloud.tech +docker stack deploy -c compose.yml beta_coopcloud_tech +``` + +Manual for now. diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..f4e45e9 --- /dev/null +++ b/compose.yml @@ -0,0 +1,22 @@ +--- +version: "3.8" + +services: + app: + image: "thecoopcloud/beta.coopcloud.tech:latest" + networks: + - proxy + deploy: + update_config: + failure_action: rollback + order: start-first + labels: + - "traefik.enable=true" + - "traefik.http.services.beta_coopcloud_tech.loadbalancer.server.port=1313" + - "traefik.http.routers.beta_coopcloud_tech.rule=Host(`beta.coopcloud.tech`)" + - "traefik.http.routers.beta_coopcloud_tech.entrypoints=web-secure" + - "traefik.http.routers.beta_coopcloud_tech.tls.certresolver=production" + +networks: + proxy: + external: true