Проблема с развертыванием проекта Java Spring на сервере с помощью действий GitHub и DockerJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблема с развертыванием проекта Java Spring на сервере с помощью действий GitHub и Docker

Сообщение Anonymous »

Я пытаюсь настроить автоматическое развертывание моего проекта Java Spring на сервере с помощью GitHub Actions и Docker, но столкнулся с некоторыми проблемами. Вот мой текущий рабочий процесс:

Код: Выделить всё

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
Я проверил, что все секреты и настройки SSH настроены правильно. Как решить эти проблемы и обеспечить правильное развертывание образа Docker на сервере?
Ранее я пробовал использовать следующий рабочий процесс:

Код: Выделить всё

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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»