即将秃头的小潘程序员 2024-08-05 11:37 采纳率: 100%
浏览 7
已结题

DockerFile文件执行出错

执行Dockerfile文件构建镜像时报错!
DockerFile文件如下:

FROM abcsys.cn:5000/public/openjdk:8-jdk-alpine
MAINTAINER beyondcent.com
ENV TZ Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ADD shuibao-gateway.tar.gz /
RUN cp /shuibao-gateway/run.sh /
RUN cp /shuibao-gateway/dz-sw-gateway.jar /app.jar
RUN chmod u+x /run.sh /app.jar && mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
RUN cp -r /shuibao-gateway/agent /
RUN cp -r /shuibao-gateway/filebeat /
RUN chown -R root:root /agent /filebeat
ENTRYPOINT [ "sh", "-c", "/run.sh" ]

报错信息如下:
Could not build image: The command '/bin/sh -c cp /shuibao-gateway/dz-sw-gateway.jar /app.jar' returned a non-zero code: 1

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-08-06 09:25
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    根据报错信息,可以看出问题出现在以下这一行:
    RUN cp /shuibao-gateway/dz-sw-gateway.jar /app.jar
    

    可能的原因是/shuibao-gateway目录下没有dz-sw-gateway.jar文件导致cp命令执行失败。建议在执行cp命令前先检查文件是否存在,可以使用ls命令或者RUN命令来检查。 修改方法如下: 1. 在RUN cp命令前添加一行命令,检查文件是否存在:

    RUN ls /shuibao-gateway/dz-sw-gateway.jar && cp /shuibao-gateway/dz-sw-gateway.jar /app.jar
    
    1. 使用IF语句在Dockerfile中判断文件是否存在并复制:
    RUN if [ -f /shuibao-gateway/dz-sw-gateway.jar ]; then cp /shuibao-gateway/dz-sw-gateway.jar /app.jar; fi
    

    这样可以避免在文件不存在的情况下引发错误。修改后的Dockerfile如下:

    FROM abcsys.cn:5000/public/openjdk:8-jdk-alpine
    MAINTAINER beyondcent.com
    ENV TZ Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    ADD shuibao-gateway.tar.gz /
    RUN ls /shuibao-gateway/dz-sw-gateway.jar && cp /shuibao-gateway/dz-sw-gateway.jar /app.jar
    RUN chmod u+x /run.sh /app.jar && mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
    RUN cp -r /shuibao-gateway/agent /
    RUN cp -r /shuibao-gateway/filebeat /
    RUN chown -R root:root /agent /filebeat
    ENTRYPOINT [ "sh", "-c", "/run.sh" ]
    

    这样修改后再次执行构建镜像,应该可以避免报错。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月14日
  • 已采纳回答 8月6日
  • 创建了问题 8月5日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?