开发者社区 > 云效DevOps > 正文

云效这个问题怎么解决?

云效这个问题怎么解决?Docker构建的过程中,Dockerfile定义了把前一环节Java编译的Jar包,打包进docker镜像中。执行到这一流程时,搜寻的文件夹是个tmp文件夹而不是workspace,如何在不更改dockerfile的前提下,让默认的路径指向workspace。0b42267bc2c842d041b935754d87539a.png
478f79ec34799a6f4e06e20208c7db77.png
Dockerfile在/root/workspace/f2f-e3plus-basebiz-api-goods_Ytzn
target在 /root/workspace/f2f-e3plus-basebiz-api-goods_Ytzn/e3plus-basebiz-api-goods-service/target

展开
收起
三分钟热度的鱼 2023-11-01 09:08:01 29 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    如果您的Dockerfile在执行到打包Java编译后的jar包时遇到了问题,您可以尝试以下解决方案:

    1. 修改 Dockerfile 中的路径以指向 workspace 目录。
    2. 使用 Docker 构建上下文来指定 workspace 目录。
    3. 使用 docker cp 命令将文件从 tmp 目录移动到 workspace 目录。
    4. 在Dockerfile中添加 WORKDIR 命令来切换到 workspace 目录。
    5. 使用 Dockerfile 中的 RUN 命令来运行 Java 编译器,然后将生成的 jar 包放在 workspace 目录中。
    2023-11-01 13:49:12
    赞同 展开评论 打赏
  • 这个问题是因为Docker在执行ENTRYPOINT命令时,会创建一个新的临时工作目录,这个目录就是"/root/.mvn/temp/staging"。所以,你需要将你的文件复制到这个临时工作目录中。

    你可以在Dockerfile中添加以下命令来实现这一点:

    RUN mkdir -p /root/.mvn/temp/staging && cp /root/workspace/f2f-e3plus-basebiz-api-goods_Ytzn/e3plus-basebiz-api-goods-service/target/*.jar /root/.mvn/temp/staging/
    

    这段命令首先创建了一个新的目录"/root/.mvn/temp/staging",然后将你的Jar文件复制到这个目录中。这样,当Docker执行ENTRYPOINT命令时,它就可以在这个目录中找到你的Jar文件了。

    2023-11-01 11:56:01
    赞同 展开评论 打赏
  • 那您的路径对着呢,您把java构建和镜像构建放到一个任务里就行,您现在在2个任务里放着呢。lQLPJwgmOqit7DjNAsbNBBGwXAo5u-HYwCwFLGIxLkDSAA_1041_710.png
    此回答整理自钉群“云效交付域答疑群”

    2023-11-01 09:20:36
    赞同 展开评论 打赏
问答分类:
问答地址:

云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载