chore(boot): bootstrap-образ публикуется в DockerHub (dicoop/bootstrap)

Симметрия с dicoop/contracts и остальными dicoop/* образами;
GHCR делает first-publish приватным и требует ручного visibility-toggle.
DockerHub-секреты DOCKERHUB_USERNAME / DOCKERHUB_TOKEN уже используются
build-contracts.yaml и build-containers.yaml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
coopops
2026-04-30 12:32:21 +00:00
parent 44d76bf317
commit 01c6a2689a
3 changed files with 12 additions and 17 deletions
+10 -15
View File
@@ -1,6 +1,6 @@
name: Build bootstrap container
# Сборка и публикация образа `ghcr.io/coopenomics/bootstrap`
# Сборка и публикация образа `dicoop/bootstrap` (DockerHub)
# one-shot оркестратора первичного деплоя контрактов на KE-узел
# (см. `components/boot/docker/Dockerfile`). Образ потребляется
# в docker-compose рядом с `dicoop/blockchain_v5.1.1`-нодой как
@@ -28,8 +28,8 @@ name: Build bootstrap container
# заново, либо запустить workflow вручную.
#
# Секреты:
# GITHUB_TOKEN — авто, для push в ghcr.io
# TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_ID — уведомления
# DOCKERHUB_USERNAME / DOCKERHUB_TOKEN — публикация в dicoop/*
# TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_ID — уведомления
on:
push:
@@ -48,10 +48,6 @@ on:
required: false
default: ''
permissions:
contents: read
packages: write
jobs:
build:
runs-on: ubuntu-latest
@@ -89,12 +85,11 @@ jobs:
echo "CONTRACTS_TAG=${{ github.event.inputs.contracts_tag }}" >> $GITHUB_ENV
fi
- name: Login to GHCR
- name: Login to DockerHub
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Pull base contracts image (sanity check)
run: |
@@ -103,7 +98,7 @@ jobs:
- name: Build and push image
run: |
IMAGE="ghcr.io/coopenomics/bootstrap"
IMAGE="dicoop/bootstrap"
docker build \
--build-arg "CONTRACTS_TAG=${CONTRACTS_TAG}" \
--label "org.opencontainers.image.revision=${{ github.sha }}" \
@@ -128,7 +123,7 @@ jobs:
- name: Verify pushed image
run: |
IMAGE="ghcr.io/coopenomics/bootstrap"
IMAGE="dicoop/bootstrap"
docker run --rm "${IMAGE}:${DOCKER_TAG}" verify
- name: Telegram notify success
@@ -136,11 +131,11 @@ jobs:
run: |
curl -s -X POST https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage \
-d chat_id=${{ secrets.TELEGRAM_CHAT_ID }} \
-d text="✅ [GITHUB MONO] ghcr.io/coopenomics/bootstrap:${DOCKER_TAG} (contracts=${CONTRACTS_TAG}, sha=${GITHUB_SHA::7})"
-d text="✅ [GITHUB MONO] dicoop/bootstrap:${DOCKER_TAG} (contracts=${CONTRACTS_TAG}, sha=${GITHUB_SHA::7})"
- name: Telegram notify failure
if: ${{ failure() }}
run: |
curl -s -X POST https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage \
-d chat_id=${{ secrets.TELEGRAM_CHAT_ID }} \
-d text="❌ [GITHUB MONO] Ошибка сборки ghcr.io/coopenomics/bootstrap на ${{ github.ref_name }} (sha=${GITHUB_SHA::7})"
-d text="❌ [GITHUB MONO] Ошибка сборки dicoop/bootstrap на ${{ github.ref_name }} (sha=${GITHUB_SHA::7})"
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
# Entrypoint для образа ke-bootstrap (`ghcr.io/coopenomics/bootstrap`).
# Entrypoint для образа ke-bootstrap (`dicoop/bootstrap`).
#
# Один и тот же бинарь поддерживает несколько режимов через первый
# аргумент CMD (по умолчанию `boot:remote`). Все режимы — short-lived,
+1 -1
View File
@@ -289,7 +289,7 @@ program
/**
* Bootstrap режим для удалённой ноды (без управления docker-контейнером).
*
* Используется внутри образа `ghcr.io/coopenomics/bootstrap` (one-shot job
* Используется внутри образа `dicoop/bootstrap` (one-shot job
* в docker-compose), запускаемого рядом с уже работающим `ke-node`-сервисом.
* RPC URL берётся из `CHAIN_URL` (тот же конфиг, что у обычного `boot`),
* пути до wasm/abi — из `CONTRACTS_DIR` (см. `configs/contracts.ts`).