首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Github操作- Docker生成:未在生成上下文中找到或排除的文件

Github操作- Docker生成:未在生成上下文中找到或排除的文件
EN

Stack Overflow用户
提问于 2022-03-16 02:17:30
回答 1查看 1.4K关注 0票数 0

在构建jar之后,我试图构建我的Docker映像,但是它抛出了这个错误,我的Github操作有问题:

代码语言:javascript
复制
Step 8/9 : COPY /home/runner/work/js-sites-client-api/js-sites-client-api/build/libs/client-portal-api.jar app.jar
COPY failed: file not found in build context or excluded by .dockerignore: stat home/runner/work/js-sites-client-api/js-sites-client-api/build/libs/client-portal-api.jar: file does not exist

这对我来说毫无意义,因为我运行了LS/PWD,我可以看到文件在那里:

代码语言:javascript
复制
  ls build/libs
  cd build/libs
  pwd
  cd ../../
  docker build . --file Dockerfile --tag ***/js-client-api:latest
  shell: /usr/bin/bash -e {0}
  env:
    JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/11.0.14-1/x64
    GRADLE_BUILD_ACTION_CACHE_RESTORED: true
-------------OUTPUT of ls/pwd------------
client-portal-api.jar
/home/runner/work/js-sites-client-api/js-sites-client-api/build/libs

以下是我的github行动:

代码语言:javascript
复制
...

jobs:

  build:
...

    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 11
      uses: actions/setup-java@v2
      with:
        java-version: '11'
        distribution: 'temurin'
        server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
        settings-path: ${{ github.workspace }} # location for the settings.xml file
    - name: Change wrapper permissions
      run: chmod +x ./gradlew
    - name: Build with Gradle
      uses: gradle/gradle-build-action@937999e9cc2425eddc7fd62d1053baf041147db7
      with:
        arguments: build
    
    - name: Log in to Docker Hub
      uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
      with:
        username: ${{ secrets.DOCKER_USERNAME }}
        password: ${{ secrets.DOCKER_PASSWORD }}
    
    - name: Build the Docker image
      run: |
        ls build/libs
        cd build/libs
        pwd
        cd ../../
        docker build . --file Dockerfile --tag ${{ secrets.DOCKER_USERNAME }}/js-client-api:latest --build-arg WORKDIR=${{ github.workspace }}
    
    - name: Push the Docker image
      run: docker push ${{ secrets.DOCKER_USERNAME }}/js-client-api:latest

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-16 08:50:51

您的Dockerfile中的这一行是问题:COPY /home/runner/work/js-sites-client-api/js-sites-client-api/build/libs/client-portal-api.jar app.jar。在Dockerfile COPY中,第一个参数是文件在机器上的位置,它必须是相对路径,而不是绝对路径。阅读更多这里

可以指定多个资源,但文件和目录的路径将解释为相对于生成上下文的源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71491097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档