dockerfile - docker curl 返回意外的文件结尾
问题描述
我正在从 Centos Machine 在 IBMCloud 部署我的 maven 项目,构建成功完成,但是在执行运行命令“ibmcloud dev run --trace”时出现此错误
/bin/sh: 1: curl: not found
gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
The command '/bin/sh -c mkdir -p /usr/share/maven /usr/share/maven/ref && curl -fsSL http://apache.osuosl.org/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | tar -xzC /usr/share/maven --strip-components=1 && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn' returned a non-zero code: 2
FAILED
An error exit status 2 was encountered while building the Docker image.
Dockerfile 内容
FROM ibmjava:8-sfj
LABEL maintainer="IBM Java Engineering at IBM Cloud"
COPY com.project.presentation/target/com.project.war /app.war
ARG MAVEN_VERSION=3.5.4
ARG USER_HOME_DIR="/root"
RUN mkdir -p /usr/share/maven /usr/share/maven/ref \
&& curl -fsSL http://apache.osuosl.org/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz \
| tar -xzC /usr/share/maven --strip-components=1 \
&& ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
ENV MAVEN_HOME /usr/share/maven
ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"
COPY mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
COPY settings-docker.xml /usr/share/maven/ref/
VOLUME "$USER_HOME_DIR/.m2"
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "mvn -pl com.project.presentation -am spring-boot:run" ]
我根据此链接上的建议更新了 dockerfile,使 settings-docker.xml 和 mvn-entrypoint.sh使用 Maven 复制的 Docker 映像无法运行
解决方案
图像没有curl
安装在它上面。您可以通过简单地编写Dockerfile
如下来检查
FROM ibmjava:8-sfj
RUN curl google.com
现在,这将失败,给出以下错误
...
Status: Downloaded newer image for ibmjava:8-sfj
---> e00902e30a47
Step 2/2 : RUN curl google.com
---> Running in 6b08c670fad2
/bin/sh: 1: curl: not found
The command '/bin/sh -c curl google.com' returned a non-zero code: 127
curl
通过添加以下行在您的图像上安装
RUN apk add --update \
curl \
&& rm -rf /var/cache/apk/*
推荐阅读
- spring - 具有弹簧安全性的弹簧云不起作用
- material-ui - 有什么方法可以更改材料表中的 headerStyle 吗?
- ruby - Ruby 中文件的流式处理
- c# - 用于 Web Api 调用 HttpSelfHostServer 的 Console.ReadKey 块
- django - 是否可以在 Django API PUT 中选择要删除的内容?
- excel - 如何在Excel中的单元格中的数字范围内搜索?
- c - 打印空间而不是整数
- python - 为什么没有打印,即使返回值不是 None (它只发生在 else 条件)
- arrays - 将一个字符串数组转换为多个数组
- google-sheets - 错误“IF 的参数数量错误。预期在 2 到 3 个参数之间,但得到 1 个参数”