Merge branch 'docker-image-prod' into 'master'

Docker image prod

See merge request !51
This commit is contained in:
Grégoire Delattre 2017-04-07 21:18:06 +00:00
commit 023019b748
8 changed files with 83 additions and 1 deletions

2
.gitignore vendored
View File

@ -2,3 +2,5 @@ node_modules
build
config.yml
*.log
docker/app.env
docker/db.env

View File

@ -1,4 +1,4 @@
.PHONY: docker migration dev clean test
.PHONY: docker migration dev clean test build_docker_image
DB_USER=test
DB_PASS=test
@ -24,6 +24,17 @@ docker:
$(DOCKER_COMPOSE) up -d
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) -path $(MIGRATION_SCHEMA) up

View 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
View 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
View File

@ -0,0 +1,4 @@
POSTGRES_PASSWORD=bob
POSTGRES_USER=w000t
POSTGRES_DB=production
PGDATA=/var/lib/postgresql/data/pgdata

View 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
View 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

View File

@ -2,6 +2,10 @@ var webpack = require("webpack");
var path = require("path");
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');
const config = {