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