docker - Dockerfile 不会在 ubuntu 上执行
问题描述
在联想 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
相同的 Dockerfile 在具有相同版本 Docker 的 macOS Catalina 10.15.2 上完美运行。这里是/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
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
提前致谢!
解决方案
你/var/lib/postgresql
从var_lib_postgresql/
docker container run -dt --name tendenci -p 80:80 -p 8000:8000 -p 443:443 -v var_lib_postgresql:/var/lib/postgresql local/tendenci
你确定tendenci_startup.sh
在你的文件夹里var_lib_postgresql/
吗?
推荐阅读
- c - 为什么我无法从 pipefd[0] 获得输出并且无法打印?
- typescript - 从嵌套参数中提取类型
- netsuite - Netsuite 已保存搜索检查相关记录中的字段
- django - Update view not displaying data
- python - 在 Python 中实现 peek() 方法时处理空堆栈的正确方法
- java - Can you "cast" a PCollection
to a PCollection to avoid deserialization? - java - If you have set spring.cloud.config.server.bootstrap=true, you need to use a composite configuration
- javascript - Typescript passing rest props to React component throws does not exist
- flutter - Scalling Image of a Carousel on Dragdown in Flutter
- flutter - Flutter:如何像 WhatsApp 一样在 Google Drive 上备份用户数据?