From 49e966ff4829bad7681aa63240f0626752ce36fd Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Sun, 10 Nov 2019 13:45:03 +0300 Subject: [PATCH] Add deploy step --- .circleci/config.yml | 13 +++++++++++++ docker/deploy-prod | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100755 docker/deploy-prod diff --git a/.circleci/config.yml b/.circleci/config.yml index f0c817b..bfe1933 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -43,6 +43,16 @@ jobs: - run: docker login --username "$DOCKER_REG_USERNAME" --password "$DOCKER_REG_PASSWORD" - run: docker push anwinged/dayoff + deploy_app: + docker: + - image: alpine:3.10.3 + steps: + - checkout + - add_ssh_keys + - run: apk add -u openssh-client + - run: ssh-keyscan vakhrushev.me >> ~/.ssh/known_hosts + - run: cat docker/deploy-prod | ssh dayoff@vakhrushev.me + workflows: version: 2 test_and_build: @@ -53,3 +63,6 @@ workflows: requires: - build_server - build_assets + - deploy_app: + requires: + - build_docker_image diff --git a/docker/deploy-prod b/docker/deploy-prod new file mode 100755 index 0000000..46c1dd8 --- /dev/null +++ b/docker/deploy-prod @@ -0,0 +1,32 @@ +#!/usr/bin/env sh + +set -eux + +source /home/dayoff/.env + +IMAGE=anwinged/dayoff +DATA_PATH=/home/dayoff/data +CONTAINER_NAME="${CONTAINER_PREFIX}-server" + +mkdir -p "$DATA_PATH" + +TTY= + +if [ -t 1 ] ; then + TTY=-t +fi + +docker pull "${IMAGE}" + +docker stop "${CONTAINER_NAME}" || true +docker rm "${CONTAINER_NAME}" || true + +docker run $TTY \ + --init \ + --detach \ + --name "${CONTAINER_NAME}" \ + --restart=unless-stopped \ + -u "$(id -u):$(id -g)" \ + -p "$WEB_SERVER_PORT:3000" \ + -v "$DATA_PATH:/opt/dayoff" \ + $IMAGE