diff --git a/README.md b/README.md index 148a476..0315f0e 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,18 @@ Сервер запустится на порту 8080. +## Деплой + +Деплой запускается из `pet-project-server`: + +```bash +inv pl -- transcriber +``` + +Плейбук сам зовёт `task image` (контракт роли `app_image`): образ собирается +локально и едет на сервер через `docker save`/`load`, реестр не участвует. +Локально образ можно собрать и руками — `task image` даст `transcriber:dev`. + ## API Endpoints ### POST /api/transcribe diff --git a/Taskfile.yml b/Taskfile.yml index 5ab06c9..a54261d 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -3,29 +3,13 @@ version: '3' vars: - GREETING: Hello, World! + PROJECT: "transcriber" tasks: - deploy: - vars: - COMMIT_HASH: - sh: git rev-parse --short HEAD - TIMESTAMP: - sh: date +%s - DOCKER_IMAGE: transcriber:{{.COMMIT_HASH}}-{{.TIMESTAMP}} + # Контракт роли app_image (pet-project-server): собрать полный образ и затегать + # его $BUILD_ID. Деплой целиком: `inv pl -- transcriber` в pet-project-server. + image: + desc: 'Docker-образ. Тег из $BUILD_ID (по умолчанию dev)' cmds: - - docker build --pull --file Dockerfile --tag {{.DOCKER_IMAGE}} . - - task: deploy-with-ansible - vars: - DOCKER_IMAGE: '{{.DOCKER_IMAGE}}' - - deploy-with-ansible: - internal: true - requires: - vars: [DOCKER_IMAGE] - dir: '/home/av/projects/private/pet-project-server' - cmds: - - yq --inplace '.transcriber_image = "{{.DOCKER_IMAGE}}"' vars/transcriber.images.yml - - "git commit vars/transcriber.images.yml --message 'Transcriber: release {{.DOCKER_IMAGE}}'" - - ansible-playbook -i production.yml playbook-transcriber-registry.yml playbook-transcriber.yml + - docker build --pull --file Dockerfile --tag "{{.PROJECT}}:${BUILD_ID:-dev}" .