Код: Выделить всё
name: Build and Deploy Spring API
on:
push:
branches:
- main
jobs:
build-deploy:
name: Build and Deploy Spring API
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup JDK 18
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: 18
- name: Unit tests
run: mvn -B test --file pom.xml
- name: Build the app
run: |
mvn clean
mvn -B package --file pom.xml
- name: Build the Docker image
uses: docker/build-push-action@v4
with:
context: .
dockerfile: Dockerfile
push: true
tags: ${{ secrets.DOCKER_USERNAME }}/rest-api:latest
- name: SSH to server and deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
docker-compose down
docker-compose pull
docker-compose up -d
После успешной сборки образа Docker (файл Dockerfile находится в корне моего проекта) он не развертывается на моем сервере. . Кроме того, в процессе сборки я столкнулся со следующей ошибкой, связанной с форматом ссылки на тег Docker:
Код: Выделить всё
/usr/bin/docker buildx build --iidfile /tmp/docker-actions-toolkit-zr5tOL/iidfile --tag /rest-api:latest --metadata-file /tmp/docker-actions-toolkit-zr5tOL/metadata-file --push .
ERROR: invalid tag "/rest-api:latest": invalid reference format
Error: buildx failed with: ERROR: invalid tag "/rest-api:latest": invalid reference format
Ранее я пробовал использовать следующий рабочий процесс:
Код: Выделить всё
name: Deploy to Server
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: your-dockerhub-username/your-app-name:latest
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Deploy to server
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
run: |
ssh -o StrictHostKeyChecking=no user@your-server-ip
Подробнее здесь: [url]https://stackoverflow.com/questions/78685903/issue-with-deploying-java-spring-project-to-server-using-github-actions-and-dock[/url]