在Dockerfile中执行命令不起作用

时间:2018-06-14 16:09:18

标签: dockerfile

Dockerfile:

FROM golang:latest

# COPY  kube/command.sh .
RUN apt-get update

# To be able to do go run !(*_test).go
RUN apt-get install dnsutils  -y

# CMD [ "shopt -s extglob" ]
CMD [ "sh command.sh" ]
# RUN bash -c shopt -s extglob
# RUN "sh command.sh"    

还尝试使用脚本文件(command.sh):

#!/bin/sh

shopt -s extglob

RUN bash -c shopt -s extglob

构建Dockerfile我得到了这个:

bash: !: event not found

如果我运行容器并手动执行shopt -s extglob:它可以正常工作。

你知道为什么吗?

1 个答案:

答案 0 :(得分:1)

尝试这可能有所帮助:

FROM golang:latest


RUN apt-get update

# To be able to do go run !(*_test).go
RUN apt-get install dnsutils  -y
# COPY  kube/command.sh .
COPY commands.sh /scripts/commands.sh
RUN ["chmod", "+x", "/scripts/commands.sh"]
ENTRYPOINT ["/scripts/commands.sh"]