transcriber: деплой через локальную сборку образа вместо Yandex Registry
- плейбук зовёт роль app_image, docker_login убран
- compose тянет `transcriber:{{ app_image_tag }}` с pull_policy: never
- удалены playbook-transcriber-registry.yml и vars/transcriber.images.yml
с зашитым тегом образа
This commit is contained in:
@@ -1,11 +1,16 @@
|
|||||||
|
# Образ собирается локально и доставляется на сервер ролью app_image
|
||||||
|
# (см. playbook-transcriber.yml): тег — случайный BUILD_ID каждого прогона,
|
||||||
|
# в реестре образа нет, поэтому pull_policy: never.
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
transcriber_app:
|
transcriber_app:
|
||||||
# noinspection ComposeUnknownValues
|
# noinspection ComposeUnknownValues
|
||||||
image: "{{ registry_transcriber_image }}"
|
image: "{{ app_name }}:{{ app_image_tag }}"
|
||||||
container_name: transcriber_app
|
container_name: transcriber_app
|
||||||
user: "{{ owner_create_result.uid }}:{{ owner_create_result.group }}"
|
user: "{{ owner_create_result.uid }}:{{ owner_create_result.group }}"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
pull_policy: never
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ config_file }}:/config/config.toml:ro"
|
- "{{ config_file }}:/config/config.toml:ro"
|
||||||
- "{{ data_dir }}:/data"
|
- "{{ data_dir }}:/data"
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
- name: "Upload local transcriber images to registry"
|
|
||||||
hosts: all
|
|
||||||
gather_facts: false
|
|
||||||
|
|
||||||
vars_files:
|
|
||||||
- vars/transcriber.yml
|
|
||||||
- vars/transcriber.images.yml
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
|
|
||||||
- name: "Push web service image to remote registry"
|
|
||||||
community.docker.docker_image:
|
|
||||||
state: present
|
|
||||||
source: local
|
|
||||||
name: "{{ transcriber_image }}"
|
|
||||||
repository: "{{ registry_transcriber_image }}"
|
|
||||||
push: true
|
|
||||||
delegate_to: 127.0.0.1
|
|
||||||
+10
-10
@@ -4,9 +4,18 @@
|
|||||||
|
|
||||||
vars_files:
|
vars_files:
|
||||||
- vars/transcriber.yml
|
- vars/transcriber.yml
|
||||||
- vars/transcriber.images.yml
|
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
|
# Образ собирается на control-хосте самим репозиторием transcriber (контракт —
|
||||||
|
# `task image`) и едет на сервер через docker save/load, без реестра.
|
||||||
|
# Роль выставляет факт app_image_tag — его подхватывает docker-compose.
|
||||||
|
- name: "Build and deliver application image"
|
||||||
|
ansible.builtin.import_role:
|
||||||
|
name: "app_image"
|
||||||
|
vars:
|
||||||
|
app_image_name: "{{ app_name }}"
|
||||||
|
app_image_src_dir: '{{ (playbook_dir, "..", "transcriber") | path_join }}'
|
||||||
|
|
||||||
- name: "Create user and environment"
|
- name: "Create user and environment"
|
||||||
ansible.builtin.import_role:
|
ansible.builtin.import_role:
|
||||||
name: owner
|
name: owner
|
||||||
@@ -40,15 +49,6 @@
|
|||||||
# --diff покажет содержимое открытым текстом.
|
# --diff покажет содержимое открытым текстом.
|
||||||
no_log: true
|
no_log: true
|
||||||
|
|
||||||
- name: "Login to Yandex Container Registry"
|
|
||||||
community.docker.docker_login:
|
|
||||||
registry_url: "{{ yc_container_registry }}"
|
|
||||||
username: "oauth"
|
|
||||||
password: "{{ yc_oauth_token }}"
|
|
||||||
# Токен — аргумент модуля: по умолчанию не печатается, но всплывает
|
|
||||||
# при -v и в отчёте о падении задачи.
|
|
||||||
no_log: true
|
|
||||||
|
|
||||||
- name: "Copy docker compose file"
|
- name: "Copy docker compose file"
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: "./files/{{ app_name }}/docker-compose.template.yml"
|
src: "./files/{{ app_name }}/docker-compose.template.yml"
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
---
|
|
||||||
transcriber_image: "transcriber:2fc5a56-1761210134"
|
|
||||||
@@ -10,8 +10,3 @@ config_file: "{{ (config_dir, 'config.toml') | path_join }}"
|
|||||||
|
|
||||||
data_dir: "{{ (base_dir, 'data') | path_join }}"
|
data_dir: "{{ (base_dir, 'data') | path_join }}"
|
||||||
backups_dir: "{{ (base_dir, 'backups') | path_join }}"
|
backups_dir: "{{ (base_dir, 'backups') | path_join }}"
|
||||||
|
|
||||||
docker_registry_prefix: "cr.yandex/crplfk0168i4o8kd7ade"
|
|
||||||
|
|
||||||
# Registry images
|
|
||||||
registry_transcriber_image: "{{ (docker_registry_prefix, transcriber_image) | path_join }}"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user