Чтобы автоматизировать сборку нового Docker-образа и запуск контейнера при изменении кода в репозитории GitHub, вы можете использовать GitHub Actions. Ниже приведен пример конфигурационного файла для GitHub Actions (.github/workflows/docker_build_and_run.yml), который будет выполнять сборку образа и запуск контейнера при каждом push в репозиторий:
yaml
Copy code
name: Docker Build and Run
on:
push:
branches:
- main # Укажите здесь вашу основную ветку, если она отличается
jobs:
build_and_run:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build Docker image
run: docker build -t your_image_name .
- name: Push Docker image
run: docker push your_image_name
- name: Run Docker container
run: docker run -d -p 8080:80 your_image_name
Обратите внимание на следующее:
Этот workflow будет запущен при каждом push в основную ветку репозитория (в данном случае, ветка main). Вы можете изменить условие триггера в соответствии с вашими потребностями.
Вам необходимо добавить свои учетные данные Docker Hub в секреты вашего репозитория GitHub с именами DOCKER_USERNAME и DOCKER_PASSWORD, чтобы GitHub Actions мог авторизоваться для публикации образа.
После успешной сборки и публикации Docker-образа, в конце workflow будет запущен контейнер с помощью команды docker run.
Этот пример можно настроить дальше в зависимости от ваших конкретных потребностей, например, для передачи дополнительных параметров сборки, тестирования и т. д.