Merge branch 'docker-image-prod' into 'master'
Docker image prod See merge request !51
This commit is contained in:
commit
023019b748
2
.gitignore
vendored
2
.gitignore
vendored
@ -2,3 +2,5 @@ node_modules
|
|||||||
build
|
build
|
||||||
config.yml
|
config.yml
|
||||||
*.log
|
*.log
|
||||||
|
docker/app.env
|
||||||
|
docker/db.env
|
||||||
|
13
Makefile
13
Makefile
@ -1,4 +1,4 @@
|
|||||||
.PHONY: docker migration dev clean test
|
.PHONY: docker migration dev clean test build_docker_image
|
||||||
|
|
||||||
DB_USER=test
|
DB_USER=test
|
||||||
DB_PASS=test
|
DB_PASS=test
|
||||||
@ -24,6 +24,17 @@ docker:
|
|||||||
$(DOCKER_COMPOSE) up -d
|
$(DOCKER_COMPOSE) up -d
|
||||||
sleep 8
|
sleep 8
|
||||||
|
|
||||||
|
build_docker_image:
|
||||||
|
rm -rf canapeapp
|
||||||
|
mkdir canapeapp
|
||||||
|
cp -R docker/run.sh canapeapp/run.sh
|
||||||
|
cp -R sql/migration canapeapp/migrations
|
||||||
|
cp $$GOPATH/bin/migrate canapeapp/migrate
|
||||||
|
yarn build
|
||||||
|
go build -v -o canapeapp/app src/*.go
|
||||||
|
docker build --tag canapeapp:latest --file docker/Dockerfile-production .
|
||||||
|
rm -rf canapeapp
|
||||||
|
|
||||||
migration-schema: docker
|
migration-schema: docker
|
||||||
$(MIGRATION) -path $(MIGRATION_SCHEMA) up
|
$(MIGRATION) -path $(MIGRATION_SCHEMA) up
|
||||||
|
|
||||||
|
6
docker/Dockerfile-production
Normal file
6
docker/Dockerfile-production
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
FROM debian:8.7
|
||||||
|
RUN apt update && apt upgrade -y && apt install -y ca-certificates && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY canapeapp /opt/canapeapp
|
||||||
|
WORKDIR /opt/canapeapp
|
||||||
|
CMD ["/opt/canapeapp/run.sh"]
|
4
docker/app.env.example
Normal file
4
docker/app.env.example
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
CONFIG_FILE=/etc/canapeapp.yml
|
||||||
|
DB_USER=w000t
|
||||||
|
DB_PASS=bob
|
||||||
|
DB_ENV=production
|
4
docker/db.env.example
Normal file
4
docker/db.env.example
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
POSTGRES_PASSWORD=bob
|
||||||
|
POSTGRES_USER=w000t
|
||||||
|
POSTGRES_DB=production
|
||||||
|
PGDATA=/var/lib/postgresql/data/pgdata
|
41
docker/docker-compose-prod.yml
Normal file
41
docker/docker-compose-prod.yml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
version: "3"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
canapeapp:
|
||||||
|
external: false
|
||||||
|
|
||||||
|
services:
|
||||||
|
database:
|
||||||
|
image: postgres:9.5
|
||||||
|
container_name: canapeapp_database
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- canapeapp
|
||||||
|
volumes:
|
||||||
|
- db-volume:/var/lib/postgresql/data/pgdata
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:5432:5432
|
||||||
|
env_file:
|
||||||
|
- ./db.env
|
||||||
|
|
||||||
|
app:
|
||||||
|
image: canapeapp:latest
|
||||||
|
container_name: canapeapp
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- database
|
||||||
|
networks:
|
||||||
|
- canapeapp
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:3000:3000
|
||||||
|
volumes:
|
||||||
|
- ../config.yml:/etc/canapeapp.yml:ro
|
||||||
|
- img-volume:/home/img
|
||||||
|
links:
|
||||||
|
- database
|
||||||
|
env_file:
|
||||||
|
- ./app.env
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
img-volume:
|
||||||
|
db-volume:
|
10
docker/run.sh
Executable file
10
docker/run.sh
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo "Running migrations..."
|
||||||
|
/opt/canapeapp/migrate \
|
||||||
|
-url postgres://${DB_USER}:${DB_PASS}@database:5432/${DB_ENV}?sslmode=disable \
|
||||||
|
-path /opt/canapeapp/migrations \
|
||||||
|
up
|
||||||
|
echo "Migrations done"
|
||||||
|
|
||||||
|
exec /opt/canapeapp/app
|
@ -2,6 +2,10 @@ var webpack = require("webpack");
|
|||||||
var path = require("path");
|
var path = require("path");
|
||||||
|
|
||||||
var BUILD_DIR = path.resolve(__dirname, 'build/public/');
|
var BUILD_DIR = path.resolve(__dirname, 'build/public/');
|
||||||
|
if (process.env.NODE_ENV === 'production') {
|
||||||
|
BUILD_DIR = path.resolve(__dirname, 'canapeapp/public/');
|
||||||
|
}
|
||||||
|
|
||||||
var SRC_DIR = path.resolve(__dirname, 'src/public/js');
|
var SRC_DIR = path.resolve(__dirname, 'src/public/js');
|
||||||
|
|
||||||
const config = {
|
const config = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user