我有一个由五个docker容器组成的docker-compose项目,其中三个使用entrypoint.sh文件。这三个文件在构建后都无法找到entrypoint.sh文件。
我已经尝试了几种语法变体,但是我对docker还是很陌生,如果我盯着它,不会知道语法错误。每个文件的构建过程均已完成,没有错误,但是当我尝试使它们联机时,它们找不到入口点文件,并且不断循环重启。
一个这样的Dockerfile
(a bunch of confidential stuff I cant post here)
# Enable apache modules
RUN sudo a2enmod actions headers alias deflate mime expires filter setenvif include rewrite
# Create a log file
RUN mkdir /var/www/logs
RUN chmod -R 777 /var/www/logs
#Open up needed ports
EXPOSE 8081
EXPOSE 80
ADD entrypoint.sh /
ENTRYPOINT ./entrypoint.sh
aa和错误
ss-fe-webserver | /bin/sh: 1: ./entrypoint.sh: not found
值得注意的是,我正在运行Windows的Docker,这些Dockerfile是由Mac用户编写的。只要此错误持续存在,服务器就会不断重启,并且不会保持联机状态。
答案 0 :(得分:1)
/
路径中。看来您正在WORKDIR
所用的地方导致此冲突。COPY
而不是ADD
。这是最后的样子-
COPY entrypoint.sh /
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
答案 1 :(得分:0)
您将根目录下的entrypoint.sh添加为“ /”。
ADD entrypoint.sh /
但是您仍然将./上的entrypoint.sh称为workdir文件夹。
ENTRYPOINT ./entrypoint.sh
您尝试:
ENTRYPOINT /entrypoint.sh
或:
ADD entrypoint.sh ./