From 6a7047cfe94131674aeb705df9bf53985b8dc9d0 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Mon, 15 Aug 2022 12:15:37 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D0=B9=20=D0=B2=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B4=D0=B0=D0=BA=D1=88=D0=B5=D0=BD=20=D1=87=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B7=20docker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Создание образа - Запись в реестре - Развертывание из реестра на сервере --- .dockerignore | 1 - .env | 1 + docker/Dockerfile.nginx.prod | 3 +++ docker/docker-compose.prod.yml | 11 +++++++++++ tools/build-and-deploy-in-prod | 28 ++++++++++++++++++++++++++++ 5 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 docker/Dockerfile.nginx.prod create mode 100644 docker/docker-compose.prod.yml create mode 100755 tools/build-and-deploy-in-prod 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"