我正在嘗試使用 GitHub Actions 構建 Docker 映像并將其發布到 Docker Hub。
我在Build and push嘗試構建 Docker 映像的步驟中遇到錯誤,因為它找不到target目錄。
Docker 構建步驟正在查看,/tmp/buildkit-mount147850474/target但我的 JAR 在/home/runner/work/myrepo/myrepo/target/app-0.0.1-SNAPSHOT.jar.
如何告訴 Docker 構建步驟使用正確的目錄?
我看了看,working-directory但檔案說它僅用于run步驟。
錯誤
#6 [3/3] COPY target/*.jar app.jar
#6 ERROR: lstat /tmp/buildkit-mount147850474/target: no such file or directory
保存 JAR 時的日志片段
[INFO] Building jar: /home/runner/work/myrepo/myrepo/target/app-0.0.1-SNAPSHOT.jar
Dockerfile
FROM openjdk:17-alpine
RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
發布.yml
name: Publish Docker Image
on:
push:
tags:
- '*'
jobs:
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'adopt'
cache: maven
- name: Build with Maven
run: mvn -B package --file pom.xml
- name: Set output
id: vars
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
working-directory: ${{ github.workspace }}
with:
push: true
tags: ${{ github.repository }}:${{ steps.vars.outputs.tag }}
uj5u.com熱心網友回復:
我有一個類似的管道,但是當我使用docker/build-push-action 時:
- 我沒有作業目錄引數
- 我有一個背景關系的引陣列到當前目錄中與地圖
您可以嘗試像這樣修改您的構建和推送步驟嗎?
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: ${{ github.repository }}:${{ steps.vars.outputs.tag }}
您可以查看此示例(https://morioh.com/p/2d04d286363b)以及此操作的檔案(https://github.com/docker/build-push-action)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/407325.html
標籤:
上一篇:Docker埠映射怪異
