commit
8883568a29
@ -0,0 +1,31 @@
|
|||||||
|
# PREPARE
|
||||||
|
## Base setup
|
||||||
|
- `mkdir letsencrypt nginx_conf.d postgres_data`
|
||||||
|
- put site repo into ./treeralker
|
||||||
|
- put treetalker.guideget.ru.conf nginx config into ./nginx_conf.d
|
||||||
|
- put `pg_dumpall --clean | gzip > db.out.gz` into ./init_db
|
||||||
|
- fix treetalker/nodejs/config/config.env `HOST=` db address
|
||||||
|
- `chmod 999:999 postgres_data`
|
||||||
|
|
||||||
|
## Clean up
|
||||||
|
- delete ./node_modules dirs
|
||||||
|
- delete react release ./build dir
|
||||||
|
- remove `default_server` directive from treetalker.guideget.ru.conf
|
||||||
|
|
||||||
|
|
||||||
|
## Dev setup
|
||||||
|
- put options-ssl-nginx.conf into ./letsencrypt
|
||||||
|
|
||||||
|
## Prod setup
|
||||||
|
- disable `USE_LOCAL_CA=1`
|
||||||
|
- put real certs in ./letsencrypt
|
||||||
|
- remove "1000:443" mapping
|
||||||
|
- uncomment 80, 443 port mappings
|
||||||
|
- put real password for postgres
|
||||||
|
|
||||||
|
# RUN
|
||||||
|
`docker-compose build`
|
||||||
|
|
||||||
|
(watch out for 'npm WARN tar ENOENT: no such file or directory' **intermitent** failure https://github.com/npm/cli/issues/2319 et al.)
|
||||||
|
|
||||||
|
`docker-compose up`
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
frontend:
|
||||||
|
build:
|
||||||
|
context: ./treetalker
|
||||||
|
dockerfile: ../docker/Dockerfile.frontend
|
||||||
|
environment:
|
||||||
|
- USE_LOCAL_CA=1 # TODO: disable and put real certs in ./letsencrypt
|
||||||
|
- CERTBOT_EMAIL="admin@treetalker.guideget.ru"
|
||||||
|
volumes:
|
||||||
|
- ./nginx_conf.d:/etc/nginx/user_conf.d
|
||||||
|
- ./letsencrypt:/etc/letsencrypt
|
||||||
|
ports:
|
||||||
|
#- "80:80"
|
||||||
|
#- "443:443"
|
||||||
|
- "1000:443" # TODO: delete
|
||||||
|
|
||||||
|
backend:
|
||||||
|
build:
|
||||||
|
context: ./treetalker/nodejs
|
||||||
|
dockerfile: ../../docker/Dockerfile.backend
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:3010:3010"
|
||||||
|
|
||||||
|
db:
|
||||||
|
build:
|
||||||
|
context: ./init_db
|
||||||
|
dockerfile: ../docker/Dockerfile.db
|
||||||
|
environment:
|
||||||
|
POSTGRES_PASSWORD: "toCHANGE" # TODO: change to real password
|
||||||
|
volumes:
|
||||||
|
- ./postgres_data:/var/lib/postgresql/data
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
FROM node:14.7 AS build-stage
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
|
||||||
|
ADD package.json package-lock.json /app/
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
|
||||||
|
COPY . /app
|
||||||
|
|
||||||
|
|
||||||
|
RUN npm install --global pm2
|
||||||
|
|
||||||
|
EXPOSE 3010
|
||||||
|
|
||||||
|
CMD ["pm2", "start", "server.js", "--attach"]
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
FROM postgres:10.21-bullseye
|
||||||
|
|
||||||
|
ADD . /docker-entrypoint-initdb.d
|
||||||
|
|
||||||
|
|
||||||
|
RUN chmod a+r /docker-entrypoint-initdb.d/*
|
||||||
|
RUN chmod a+x /docker-entrypoint-initdb.d/1_init.sh
|
||||||
|
|
||||||
|
EXPOSE 5432
|
||||||
|
|
||||||
|
USER postgres
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
FROM node:14.7 AS build-stage
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY package.json package-lock.json /app/
|
||||||
|
RUN npm install
|
||||||
|
RUN npm install apexcharts echarts
|
||||||
|
|
||||||
|
COPY . /app
|
||||||
|
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
|
||||||
|
FROM jonasal/nginx-certbot:2.4
|
||||||
|
WORKDIR /var/tmp/www/treetalker/build/
|
||||||
|
|
||||||
|
# muti-stage build
|
||||||
|
COPY --from=build-stage /app/build ./
|
||||||
|
|
||||||
|
EXPOSE 80 443
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
gunzip -c '/docker-entrypoint-initdb.d/db.out.gz' | psql --set ON_ERROR_STOP=0 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB"
|
||||||
|
|
||||||
Loading…
Reference in new issue