gpt4 book ai didi

Docker 入口点和 cmd 一起

转载 作者:行者123 更新时间:2023-12-02 00:49:05 28 4
gpt4 key购买 nike

我尝试使用入口点和 cmd 设置 Docker。

FROM debian:stretch
RUN apt-get update && \
apt install gnupg ca-certificates -y
RUN echo "deb http://repo.aptly.info/ squeeze main" > /etc/apt/sources.list.d/aptly.list
RUN apt-key adv --keyserver keys.gnupg.net --recv-keys 9E3E53F19C7DE460
RUN apt update && apt install aptly -y
ADD aptly.conf /etc/aptly.conf
ADD start.sh .
VOLUME ["/aptly"]
ENTRYPOINT ["/start.sh"]
CMD ["aptly", "api", "serve"]

但是入口点脚本并没有停止...cmd 命令未启动

这是我的脚本:

#!/bin/bash
set -e
init_aptly() {
#import pgp key
#create nginx root folder in /aptly
su -c "mkdir -p /aptly/.aptly/public"
echo "12"
#initialize repository
#aptly create repo doze-server - distribution="stable"
}
#check for first run
if [ ! -e /aptly/.aptly/public ]; then
init_aptly
echo "13"
fi
echo "14"

脚本总是回显 14,我只想要一个,然后从 dockerfile 执行 cmd 命令

最佳答案

当您同时使用入口点和命令时,命令部分将作为参数附加到入口点可执行文件。因此,在您的情况下:

ENTRYPOINT ["/start.sh"]
CMD ["aptly", "api", "serve"]

相当于运行:

ENTRYPOINT["/start.sh", "aptly", "api", "serve"]

关于Docker 入口点和 cmd 一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47648775/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com