diff --git a/Makefile b/Makefile index f4b945e..4f1f55f 100644 --- a/Makefile +++ b/Makefile @@ -27,8 +27,11 @@ docker: 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 - CGO_ENABLED=0 go build -v -o canapeapp/app src/main.go + go build -v -o canapeapp/app src/main.go docker build --tag canapeapp:latest --file docker/Dockerfile-production . rm -rf canapeapp diff --git a/docker/Dockerfile-production b/docker/Dockerfile-production index 2ae1a63..ff9c91b 100644 --- a/docker/Dockerfile-production +++ b/docker/Dockerfile-production @@ -1,6 +1,5 @@ -FROM alpine:3.5 +FROM debian:8.7 COPY canapeapp /opt/canapeapp WORKDIR /opt/canapeapp -RUN chmod +x /opt/canapeapp -CMD ["/opt/canapeapp"] +CMD ["/opt/canapeapp/run.sh"] diff --git a/docker/docker-compose-prod.yml b/docker/docker-compose-prod.yml new file mode 100644 index 0000000..ad9754c --- /dev/null +++ b/docker/docker-compose-prod.yml @@ -0,0 +1,40 @@ +version: "3" + +networks: + canapeapp: + external: false + +services: + database: + image: postgres:9.5 + container_name: canapeapp_database + restart: always + environment: + - POSTGRES_PASSWORD=test + - POSTGRES_USER=test + - POSTGRES_DB=production + networks: + - canapeapp + # volumes: + # - .:/docker-entrypoint-initdb.d/ + ports: + - 5432 + app: + image: canapeapp:latest + container_name: canapeapp + restart: always + depends_on: + - database + environment: + - CONFIG_FILE=/etc/canapeapp.yml + - DB_USER=test + - DB_PASS=test + - DB_ENV=production + networks: + - canapeapp + ports: + - 127.0.0.1:6666:3000 + volumes: + - ../config-prod.yml:/etc/canapeapp.yml:ro + links: + - database diff --git a/docker/run.sh b/docker/run.sh new file mode 100755 index 0000000..af000c9 --- /dev/null +++ b/docker/run.sh @@ -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