|
I tried to use the supervisor to start nginx and PostgreSQL, the docker container of boot. Use the following Dockerfile and supervisord.conf file, the above application starts, but after a moment to stop. Did you do wrong? stderr or system log file does not contain an error message.
Dockerfile:
1. [Code] [text]
FROM Ubuntu: 14.04
RUN mkdir -p / var / www / var / pgsql / data / var / log / pgsql / var / log / nginx
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY nginx.conf / etc / nginx / sites-enabled / default
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get -y install curl wget supervisor postgresql postgresql-contrib libpq-dev llvm gcc g ++ python3-pip python2.7 pytho
n2.7-dev python-pip git nginx nodejs openjdk-7-jdk build-essential
RUN apt-get -y clean all
EXPOSE 80 8000 8080
CMD [ "/ usr / bin / supervisord"]
supervisord.conf:
2. [Code] [text]
[Supervisord]
nodaemon = true
[Program: nginx]
command = / bin / bash -c "exec / usr / sbin / nginx -DFOREGROUND"
stdout_logfile = / var / log / nginx /% (program_name) s.log
stderr_logfile = / var / log / nginx /% (program_name) s.log
[Program: postgresql]
command = / bin / bash -c "exec /usr/lib/postgresql/9.3/bin/postgres -D / var / pgsql / data"
stdout_logfile = / var / log / pgsql /% (program_name) s.log
stderr_logfile = / var / log / pgsql /% (program_name) s.log
you should:
Use the -n option to run supervisord in the foreground.
Use ENTRYPOINT in Dockerfile instead of CMD. |
|
|
|