Dockerfile COPY не удалось: stat нет такого файла при использовании GitHub CI
Я использую GitHub Actions для проекта Gradle с этими шагами:
name: Java CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- run: gradle wrapper
- run: ./gradlew bootJar
- run: ls ./build/libs/
- uses: actions/checkout@v1
- name: Login to docker
run: docker login docker.pkg.github.com -u xxxxxx -p xxxxxx
- uses: actions/checkout@v1
- name: Build the Docker image
run: docker build . -t realtimechat-snapshot-0.$GITHUB_REF
- uses: actions/checkout@v1
- name: Tag the image
run: docker tag realtimechat-snapshot-0.$GITHUB_REF realtimechat-snapshot-0
- uses: actions/checkout@v1
- name: Push the image
run: docker push realtimechat-snapshot-0.$GITHUB_REF
в Build the Docker image
Постройте этот Dockerfile:
FROM alpine:latest
COPY ./build/libs/realtimeChattingSystem-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
и когда он пытается скопировать файл jar, я получаю эту ошибку:
Ошибка копирования: stat /var/lib/docker/tmp/docker-builder207778036/build/libs/realtimeChattingSystem-0.0.1-SNAPSHOT.jar: нет такого файла или каталога
НОТА*
в - run: ls ./build/libs/
в шагах он действительно показывает мне файл jar:
Запустите ls./build/libs/
realtimeChattingSystem-0.0.1-SNAPSHOT.jar
Выпуск #2
после внесения изменений в этот пост
Я столкнулся с другой проблемой
это шаги:
name: Java CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up JDK 13
uses: actions/setup-java@v1
with:
java-version: 13
- run: ./gradlew bootJar
- name: Login to Github regestry
run: docker login docker.pkg.github.com -u xxxxx -p xxxxx
- name: Build the Docker image
run: docker build . -t docker.pkg.github.com/sulimanlab/realtime-chat/realtimechat-snapshot-0.$GITHUB_REF
- name: Push the image to github
run: docker push docker.pkg.github.com/sulimanlab/realtime-chat/realtimechat-snapshot-0.$GITHUB_REF
На последнем этапе я получаю такую ошибку:
Отправка относится к репозиторию [docker.pkg.github.com/sulimanlab/realtime-chat/realtimechat-snapshot-0.refs/heads/master]
3aad04996f8f: Подготовка
77cae8ab23bf: Подготовка
ошибка синтаксического анализа тела ответа HTTP 404: недопустимый символ 'p' после значения верхнего уровня: "страница 404 не найдена \n"
1 ответ
Вам нужно только использовать - uses: actions/checkout@v1
один раз в начале рабочего процесса. Когда вы снова используете его после сборки, я думаю, что он, вероятно, сбрасывает локальное рабочее пространство обратно вGITHUB_SHA
и ваш файл jar удаляется в процессе.
Попробуй это:
name: Java CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- run: gradle wrapper
- run: ./gradlew bootJar
- run: ls ./build/libs/
- name: Login to docker
run: docker login docker.pkg.github.com -u xxxxxx -p xxxxxx
- name: Build the Docker image
run: docker build . -t realtimechat-snapshot-0.$GITHUB_REF
- name: Tag the image
run: docker tag realtimechat-snapshot-0.$GITHUB_REF realtimechat-snapshot-0
- name: Push the image
run: docker push realtimechat-snapshot-0.$GITHUB_REF