创建docker-consul 官方镜像

Creating docker-consul official image

我正在尝试使用官方 docker-consul 图像阅读此文档 https://hub.docker.com/_/consul/

不确定我是否可以从集线器中提取这个官方图像,但我正在尝试从 docker 文件和官方存储库

中的脚本构建图像

https://github.com/hashicorp/docker-consul

使用以下命令

docker build -t docker-consul:0.6 .

来自包含 Dockerfile 和 docker-entrypoint.sh

的文件夹

但是图像创建失败并出现以下错误

   The command '/bin/sh -c apk add --no-cache ca-certificates gnupg &&     gpg --recv-keys 91A6E7F85D05C65630BEF18951852D87348FFC4C &&     mkdir -p /tmp/build &&     cd /tmp/build &&     wget 


https://releases.hashicorp.com/docker-base/${DOCKER_BASE_VERSION}/docker-base_${DOCKER_BASE_VERSION}_linux_amd64.zip &&     wget 

https://releases.hashicorp.com/docker-base/${DOCKER_BASE_VERSION}/docker-base_${DOCKER_BASE_VERSION}_SHA256SUMS &&     wget 

https://releases.hashicorp.com/docker-base/${DOCKER_BASE_VERSION}/docker-base_${DOCKER_BASE_VERSION}_SHA256SUMS.sig &&     gpg --batch --verify docker-base_${DOCKER_BASE_VERSION}_SHA256SUMS.sig docker-base_${DOCKER_BASE_VERSION}_SHA256SUMS &&     grep ${DOCKER_BASE_VERSION}_linux_amd64.zip docker-base_${DOCKER_BASE_VERSION}_SHA256SUMS | sha256sum -c &&     unzip docker-base_${DOCKER_BASE_VERSION}_linux_amd64.zip &&     cp bin/gosu bin/dumb-init /bin &&     wget 

https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_amd64.zip &&     wget 

https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_SHA256SUMS &&     wget https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_SHA256SUMS.sig &&     gpg --batch --verify consul_${CONSUL_VERSION}_SHA256SUMS.sig consul_${CONSUL_VERSION}_SHA256SUMS &&     grep consul_${CONSUL_VERSION}_linux_amd64.zip consul_${CONSUL_VERSION}_SHA256SUMS | sha256sum -c &&     unzip -d /bin consul_${CONSUL_VERSION}_linux_amd64.zip &&     cd /tmp &&     rm -rf /tmp/build &&     apk del gnupg &&     rm -rf /root/.gnupg' returned a non-zero code: 2

我错过了什么?

我想修改入口点以将 运行 时间参数包含在 运行 作为独立模式。然后 运行 conatiner 仅使用 'docker 运行 consul。

如果你想改变一个文件,更好的方法是准备你的 Dockerfile 并从官方继承。

Dockerfile 示例:

FROM consul:0.6
ADD docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh

也许对你来说只改变 CMD 就足够了

FROM consul:0.6
CMD ["agent", "-your_param_1", "-your_param_2"]