【发布时间】:2021-11-02 10:26:49
【问题描述】:
我在dockerfile中有一个应用,需要调用.sh文件来下载包,但是调用这个文件时总是报错。 p>
我的 dockerfile 是:
FROM alpine:3.12 as builder
ARG VERSION=7.16.0
ARG DISTRO=tomcat
ARG SNAPSHOT=true
ARG JMX_PROMETHEUS_VERSION=0.12.0
RUN apk add --no-cache \
bash \
ca-certificates \
maven \
tar \
wget \
xmlstarlet
COPY settings.xml download.sh camunda-run.sh camunda-tomcat.sh camunda-wildfly.sh /tmp/
RUN /tmp/download.sh
FROM alpine:3.12
RUN apk add --no-cache \
bash \
ca-certificates \
curl \
openjdk11-jre-headless \
tzdata \
tini \
xmlstarlet \
&& curl -o /usr/local/bin/wait-for-it.sh \
"https://raw.githubusercontent.com/vishnubob/wait-for-it/a454892f3c2ebbc22bd15e446415b8fcb7c1cfa4/wait-for-it.sh" \
&& chmod +x /usr/local/bin/wait-for-it.sh
RUN addgroup -g 1000 -S camunda && \
adduser -u 1000 -S camunda -G camunda -h /camunda -s /bin/bash -D camunda
WORKDIR /camunda
USER camunda
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["./camunda.sh"]
COPY --chown=camunda:camunda --from=builder /camunda .
我的 download.sh 文件看起来就像这样:https://github.com/camunda/docker-camunda-bpm-platform/blob/next/download.sh
运行命令时:docker build . -t servicecamundadocker/latest 我得到错误:
=> ERROR [builder 4/4] RUN /tmp/download.sh 0.2s ------
> [builder 4/4] RUN /tmp/download.sh:
#11 0.216 /bin/sh: illegal option -
------
有谁知道如何解决这个错误?谢谢
【问题讨论】:
-
alpine 的默认 shell 是
ash(尽管/bin/sh可能是它的别名)所以可能不支持该脚本中使用的-ex... 你能尝试执行吗该脚本在交互式纯高山容器中? -
可以添加download.sh脚本内容吗?
-
@Noam Yizraeli 完成!
-
在您的脚本中,您以
/bin/sh -ex开头,-e在不处于交互模式时退出(文档中说 -If not interactive, exit immediately if any untested command fails)您可以将其删除并重试吗?
标签: docker dockerfile docker-build