From 193dcd56d33942dc87566eed96c5db8976a9c0ac Mon Sep 17 00:00:00 2001 From: Sven Dowideit Date: Tue, 6 Mar 2018 14:01:06 +1000 Subject: [PATCH] Docker things I noticed trying to run my own dat registry Signed-off-by: Sven Dowideit --- Dockerfile | 19 +++++++++++++------ docker-compose.yml | 4 +--- docker-swarm.yml | 41 +++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 4 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 docker-swarm.yml diff --git a/Dockerfile b/Dockerfile index db72f5d7..bffba8c0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,28 @@ FROM node:6.9 -EXPOSE 80 -EXPOSE 25 ENV PORT 80 +EXPOSE ${PORT} + ENV NODE_ENV development ENV TOWNSHIP_SECRET "some secret string here" ENV DATADIR /data -VOLUME /data +VOLUME ${DATADIR} RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY package.json /usr/src/app/ -RUN npm install --production --loglevel warn +RUN npm install --production --loglevel warn COPY . /usr/src/app -RUN npm run build-js-prod && npm run build-css && npm run minify && npm run version +RUN npm run build-js-prod \ + && npm run build-css \ + && npm run minify \ + && npm run version + +# make it possible to use the image by default +COPY config/default.js config/config.development.js # do docker exec: npm run database -CMD npm run database && DEBUG=dat-registry npm run server +CMD npm run database \ + && DEBUG=dat-registry npm run server diff --git a/docker-compose.yml b/docker-compose.yml index 8b0b149f..ec331b3e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,9 +4,7 @@ services: build: . image: datproject/datbase:${TAG} ports: - - 25:25 - expose: - - 80 + - 8888:80 environment: - NODE_ENV=${NODE_ENV} volumes: diff --git a/docker-swarm.yml b/docker-swarm.yml new file mode 100644 index 00000000..36133903 --- /dev/null +++ b/docker-swarm.yml @@ -0,0 +1,41 @@ +version: '3.4' +# start a swarm stack by running +# docker stack up -c docker-swarm.yml dat +# +# Requires a docker swarm with traefik running on an externally connectable `infra_traefik` network +# see https://github.com/onaci/swarm-infra +services: + datbase: + build: . + image: datproject/datbase:${TAG:-master} + environment: + - NODE_ENV=${NODE_ENV} + - TOWNSHIP_SECRET + - DATA=/data + volumes: + - data:/data + configs: + - source: datbase_config + target: /usr/src/app/config/config.development.js + networks: + default: + aliases: + - datbase.${STACKDOMAIN:-loc.alho.st} + infra_traefik: + deploy: + labels: + - "traefik.docker.network=infra_traefik" + # http://datbase.${STACKDOMAIN:-loc.alho.st}/ + - "traefik.datbase.port=80" + - "traefik.datbase.frontend.rule=Host: datbase.${STACKDOMAIN:-loc.alho.st}" + +networks: + infra_traefik: + external: true + +volumes: + data: + +configs: + datbase_config: + file: ./config/default.js \ No newline at end of file diff --git a/package.json b/package.json index f3d3e043..8e48f243 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,6 @@ "devDependencies": { "dat-node": "^3.5.0", "marked": "^0.3.6", - "nodemon": "^1.10.0", "request": "^2.79.0", "rimraf": "^2.5.4", "standard": "^7.1.2", @@ -102,6 +101,7 @@ "node-sass": "^3.8.0", "node-sass-magic-importer": "^0.1.4", "node-version-assets": "^1.1.0", + "nodemon": "^1.10.0", "pretty-bytes": "^3.0.1", "pump": "^1.0.2", "range-parser": "^1.2.0",