作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
FROM python:3.6
ENV PYTHONUNBUFFERED 1
WORKDIR /usr/src/consumerhub
COPY ./ /usr/src/consumerhub
RUN curl -sL https://deb.nodesource.com/setup_11.x | bash -
RUN apt-get install -y nodejs
RUN apt-get install -y redis-server
RUN systemctl start redis
RUN pip install -r requirements.txt
RUN npm install --prefix frontend/
CMD ["/bin/bash","-c","python manage.py runserver react 0.0.0.0:8000"]
我在 docker 容器中使用 redis。
我正在使用“systemctl start redis”在容器内启动 redis。它说 systemctl 不是命令。
注意:我不想使用 docker-compose 我必须在这里使用。
请看
最佳答案
给你。容器启动后不需要启动任何东西。一切都将在启动时开始。我使用 Alpine 测试了一件事,而不是 python ubuntu,它与 alpine 相比很重。
为您的 python 应用修改注释内容
FROM python:3.6-alpine
RUN mkdir -p /etc/supervisord.d
# general config for supervisord
RUN echo $'[supervisord] \n\
[unix_http_server] \n\
file = /tmp/supervisor.sock \n\
chmod = 0777 \n\
chown= nobody:nogroup \n\
[supervisord] \n\
logfile = /tmp/supervisord.log \n\
logfile_maxbytes = 50MB \n\
logfile_backups=10 \n\
loglevel = info \n\
pidfile = /tmp/supervisord.pid \n\
nodaemon = true \n\
umask = 022 \n\
identifier = supervisor \n\
[supervisorctl] \n\
serverurl = unix:///tmp/supervisor.sock \n\
[rpcinterface:supervisor] \n\
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface \n\
[include] \n\
files = /etc/supervisord.d/*.conf' >> /etc/supervisord.conf
# starting redis-server using supervisor d
RUN echo $'[supervisord] \n\
nodaemon=true \n\
[program:redis] \n\
command=redis-server /etc/redis.conf \n\
autostart=true \n\
autorestart=true \n\
stdout_logfile=/var/log/redis/stdout.log \n\
stdout_logfile_maxbytes=0MB \n\
stderr_logfile=/var/log/redis/stderr.log \n\
stderr_logfile_maxbytes=10MB \n\
exitcodes=0 ' >> /etc/supervisord.d/redis.conf
# start your python script
RUN echo $'[supervisord] \n\
nodaemon=true \n\
[program:python-app] \n\
# command=python manage.py runserver react 0.0.0.0:8000\n\
command=python --version \n\
autorestart=unexpected \n\
stdout_logfile=/dev/fd/1 \n\
stdout_logfile_maxbytes=0MB \n\
stderr_logfile_maxbytes = 0 \n\
stderr_logfile=/dev/fd/2 \n\
redirect_stderr=true \n\
exitcodes=0 ' >> /etc/supervisord.d/python-app.conf
#installing requirement
RUN apk add --no-cache supervisor redis nodejs npm
# Your requried code etc
# ENV PYTHONUNBUFFERED 1
# WORKDIR /usr/src/consumerhub
# COPY ./ /usr/src/consumerhub
# RUN npm install --prefix frontend/
# RUN pip install -r requirements.txt
# allow external access
RUN sed -i '/protected-mode yes/c\protected-mode no ' /etc/redis.conf
EXPOSE 6379 8000
ENTRYPOINT ["supervisord", "--nodaemon", "--configuration", "/etc/supervisord.conf"]
这是已安装包的列表。
关于docker - 如何在docker容器中启动redis服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56543397/
我是一名优秀的程序员,十分优秀!