Во время летней стажировки я узнал о публикации образа docker в реестр контейнеров GitHub с помощью GitHub Actions. Я решил, что было бы неплохо поделиться этой информацией, поэтому я написал статью в блоге.
Шаг 1: Создайте новый репозиторий
В этом руководстве я назову свой репозиторий «publish-to-gcr». После того, как мы дадим имя нашему хранилищу, нам нужно убедиться, что наше хранилище является публичным.
Шаг 2: Создайте файл
Вы можете создать любую программу с файлами по вашему выбору, но для моего примера я создам файл app.js
. Внутри файла app.js
я выведу в console.log слова «Hello, world!».
Шаг 3: Создайте файл Docker
В корне проекта я создал Docker-файл со следующим содержимым.
FROM node:alpine
COPY . /app
WORKDIR /app
CMD node app.js
Шаг 4: Создайте действие
В корне моего проекта я создал папку .github/workflows
. Внутри нее я создал файл publish.yml
. Внутри моего publish.yml
я написал следующий код (обратите внимание, что вам нужно будет заменить некоторые значения, например, имя пользователя:
name: publish
on: [push]
jobs:
publish-hello-docker-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build the hello-docker Docker image
run: |
docker build . --tag ghcr.io/deselikem/hello-docker-gcr-demo:latest
docker run ghcr.io/deselikem/hello-docker-gcr-demo:latest
docker push ghcr.io/deselikem/hello-docker-gcr-demo:latest
Шаг 5: Внесите и зафиксируйте изменения для запуска действия
Перейдите к иконке Actions в вашем репозитории. Вы должны увидеть действие, которое мы создали с помощью текстового редактора. Если все было сделано правильно, действие должно было быть запущено, и мы можем проверить все шаги, которые предприняло действие, чтобы убедиться, что оно правильно опубликовано.
Шаг 6: Проверьте ваш пакет, который был опубликован в реестре контейнеров GitHub!
В вашем репозитории, если вы прокрутите страницу вниз, вы увидите раздел с пакетами, связанными с вашим репозиторием. Это должен быть тот, который вы только что создали!
Если вы предпочитаете видеоуроки, а не учебники в блоге, я создал для вас видеоурок. Посмотрите его!