Dockerfile赢得';无法在ubuntu上执行

Dockerfile赢得';无法在ubuntu上执行,docker,dockerfile,Docker,Dockerfile,在联想Thinkpad上运行Ubuntu 18.04.3上的docker ce 19.03.5 将我的问题缩小到Dockerfile中的一行: CMD ["bash","-x","/var/lib/postgresql/tendenci_startup.sh"] 这导致了以下错误: myusuf@ubuntudt:~/$ docker logs cdb08f7ebdd1 bash: /var/lib/postgresql/tendenci_startup.sh: No such file or

在联想Thinkpad上运行Ubuntu 18.04.3上的docker ce 19.03.5

将我的问题缩小到Dockerfile中的一行:

CMD ["bash","-x","/var/lib/postgresql/tendenci_startup.sh"]
这导致了以下错误:

myusuf@ubuntudt:~/$ docker logs cdb08f7ebdd1
bash: /var/lib/postgresql/tendenci_startup.sh: No such file or directory
同一个Docker文件在macOS Catalina 10.15.2和同一版本的Docker上完美地工作。这里是/var/lib/postgresql/tendenci_startup.sh的内容:

echo
processes="memcached postgresql"
echo "== Starting up application processes =="

for p in $processes
do
    echo == starting $p
    service $p start
done

#su postgres -c "bash -x /var/lib/postgresql/configure_tendenci.sh"



# Run nginx in the foreground to keep the container alive
nginx -g "daemon off;"
service --status-all
date
我读过一些关于行尾之类的帖子——这些都没有帮助

The content of my working directory:
myusuf@ubuntudt:~/work/docker/ws1$ ls -la
total 52
drwxr-xr-x 2 myusuf myusuf 4096 Feb  1 00:21 .
drwxr-xr-x 4 myusuf myusuf 4096 Jan 29 23:52 ..
-rw-r--r-- 1 myusuf myusuf  871 Feb  1 00:16 .bash_profile
-rw-r--r-- 1 myusuf myusuf 3310 Feb  1 00:16 .bashrc
-rw-r--r-- 1 myusuf myusuf  789 Feb  1 00:16 configure_postgres.sh
-rw-r--r-- 1 myusuf myusuf 3440 Feb  1 00:16 configure_tendenci.sh
-rw-r--r-- 1 myusuf myusuf 2295 Feb  1 00:16 Dockerfile
-rw-r--r-- 1 myusuf myusuf  437 Feb  1 00:16 generate_cert.sh
-rw-r--r-- 1 myusuf myusuf 1923 Feb  1 00:16 nginx_mysite.conf
-rw-r--r-- 1 myusuf myusuf 2159 Feb  1 00:16 sfportengineers.ddns.net.crt
-rw-r--r-- 1 myusuf myusuf 3272 Feb  1 00:16 sfportengineers.ddns.net.key
-rw-r--r-- 1 myusuf myusuf   43 Feb  1 00:16 tendenci.code-workspace
-rw-r--r-- 1 myusuf myusuf  338 Feb  1 00:16 tendenci_startup.sh

提前谢谢

var\u lib\u postgresql/

docker容器运行-dt--name tendenci-p80:80-p8000:8000-p443:443-v var_lib_postgresql:/var/lib/postgresql local/tendenci


您确定
tendenci\u startup.sh
在您的文件夹
var\u lib\u postgresql/
中吗

添加完整的Dockerfile并描述文件夹结构,这将有助于解决您的问题。请发布整个Dockerfile。从根本上说,它失败是因为文件不存在。至于为什么它会在其他地方与相同的Dockerfile一起存在,这是一个没有更多上下文的谜。tendenci_startup.sh在卷中。我应该提到的是,这种配置在macOS上运行得非常完美,只是在Ubuntu18.04上无法运行。为什么它会在卷中?装载卷将隐藏基础映像中的所有内容。最好将启动容器所需的脚本存储在与数据不同的位置。是否验证脚本是否可以执行?
The Dockerfile:

myusuf@ubuntudt:~/work/docker/ws1$ cat Dockerfile
FROM ubuntu:18.04
LABEL maintainer="projectMaintainer"

###########################################
# for apt to be noninteractive
ENV DEBIAN_FRONTEND=noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN=true

###########################################
# preesed tzdata, update package index, upgrade packages and install needed software
RUN inetutils-ping tcpdump apt-file wget libtelnet-utils telnet && apt-file update; \
  add-apt-repository universe && apt-get install -y postgresql postgresql-contrib postgis \
  && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*


COPY .bash_profile configure_postgres.sh tendenci_startup.sh configure_tendenci.sh /var/lib/postgresql/
RUN chown postgres /var/lib/postgresql/.bash_profile
COPY .bashrc /root/

COPY nginx_mysite.conf /etc/nginx/sites-available
RUN ln -s /etc/nginx/sites-available/nginx_mysite.conf /etc/nginx/sites-enabled/nginx_mysite.conf
COPY sfportengineers.ddns.net.crt /etc/nginx/ssl/sfportengineers.ddns.net.crt
COPY sfportengineers.ddns.net.key /etc/nginx/ssl/sfportengineers.ddns.net.key

EXPOSE 80/tcp 443/tcp


RUN service --status-all; service postgresql start; sleep 10; service --status-all; \
  su postgres -c "bash /var/lib/postgresql/configure_postgres.sh"; \
  service postgresql stop; service --status-all; \
  echo "postgres ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers; \
  rm /etc/nginx/sites-enabled/default

CMD ["bash","-x","/var/lib/postgresql/tendenci_startup.sh"]

The build, run, and error:

docker build --rm -f "Dockerfile" -t local/tendenci "."
docker container run -dt --name tendenci -p 80:80 -p 8000:8000 -p 443:443 -v var_lib_postgresql:/var/lib/postgresql local/tendenci

bash: /var/lib/postgresql/tendenci_startup.sh: No such file or directory