diff --git a/.dockerignore b/.dockerignore index f299a02..a6b51e9 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,4 +1,3 @@ /node_modules -/output_* /var /vendor diff --git a/.env b/.env index 6320749..81a2c95 100644 --- a/.env +++ b/.env @@ -1,2 +1,3 @@ +PROJECT=homepage PHP_IMAGE=homepage-php NODE_IMAGE=homepage-node diff --git a/docker/Dockerfile.nginx.prod b/docker/Dockerfile.nginx.prod new file mode 100644 index 0000000..1ac07cd --- /dev/null +++ b/docker/Dockerfile.nginx.prod @@ -0,0 +1,3 @@ +FROM nginx:stable + +COPY output_prod /usr/share/nginx/html diff --git a/docker/docker-compose.prod.yml b/docker/docker-compose.prod.yml new file mode 100644 index 0000000..96a5ba2 --- /dev/null +++ b/docker/docker-compose.prod.yml @@ -0,0 +1,11 @@ +version: '2' + +services: + nginx: + image: '${NGINX_IMAGE}' +# user: '${CURRENT_UID}:${CURRENT_GID}' + restart: unless-stopped + ports: + - '${WEB_SERVER_PORT}:80' + env_file: + - .env diff --git a/tools/build-and-deploy-in-prod b/tools/build-and-deploy-in-prod new file mode 100755 index 0000000..d844904 --- /dev/null +++ b/tools/build-and-deploy-in-prod @@ -0,0 +1,28 @@ +#!/bin/bash + +set -eu +set -x + +source .env + +ssh_host=homepage@51.250.85.23 +repo=cr.yandex/crplfk0168i4o8kd7ade +timestamp=$(date +%s) +commit=$(git rev-parse --short HEAD) +nginx_image_tag="${repo}/homepage-nginx:${commit}-${timestamp}" + +echo $timestamp +echo $commit + +docker build \ + --file docker/Dockerfile.nginx.prod \ + --tag "${nginx_image_tag}" \ + "$PWD" + +docker push "${nginx_image_tag}" + +scp ./docker/docker-compose.prod.yml "${ssh_host}:/home/homepage/docker-compose.yml" +ssh "${ssh_host}" -t "\ + cp .env .env.prod; \ + echo NGINX_IMAGE=${nginx_image_tag} >> .env.prod; \ + docker-compose --project-name homepage --env-file=.env.prod up --detach"