Запуск docker ce 19.03.5 в Ubuntu 18.04.3 в Lenovo Thinkpad
Сузил мою проблему до строки в 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 работал безупречно на 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
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
Заранее спасибо!