Dockerfile 请教

2021-10-24 23:58:53 +08:00
 nymrli

dockerfile 内容如下

# alpine 无法安装 scipy 和 numpy
FROM python:3.9
MAINTAINER Mrli 1063052964@qq.com

ADD log_utils/ /app
ADD docker-entrypoint.sh /app
WORKDIR /app
RUN mkdir logs/
ADD ext/ /app/logs
VOLUME /app/logs
EXPOSE 8097
# alpine 中 pip 安装 Scipy 等科学相关的包时报错, 需要预先安装的库
#RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
#RUN apk --update-cache --no-cache add tzdata gcc make freetype-dev gfortran musl-dev g++ libgcc libquadmath musl libgfortran lapack-dev
#RUN pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple \
#    && chmod 777 ./repeat.sh \
#    && chmod 777 ./docker-entrypoint.sh \
    && bash ./repeat.sh
ENTRYPOINT python -m visdom.server

#ENTRYPOINT ["bash", "./docker-entrypoint.sh"]

repeat.sh 内容如下

#!/bin/bash
echo "Start Record"

ENV_DIR=$(cd $(dirname $0);pwd)

# source $ENV_DIR/env/bin/activate
# pyenv activate py38
nohup python -u checkRepeatSituation.py 1> r1.log 2>err.log &
nohup python -u checkRepeatSituation1.py 1> r2.log 2>err.log &
nohup python -u checkRepeatSituation3.py 1> r3.log 2>err.log &
nohup python -u checkRepeatSituation4.py 1> r4.log 2>err.log &
#nohup python -m visdom.server &

运行命令如下docker build -t nymrli/cplm_record:v2 ., docker run -d -p 23333:8097 -v /var/log/cplm:/app/logs --name cplm nymrli/cplm_record:v2 想请问一下为什么容器中 nohup 的内容没有执行

1196 次点击
所在节点    Docker
2 条回复
mimzy
2021-10-25 00:08:21 +08:00
nohup 命令在构建镜像的时候执行完了。你起容器只会执行 ENTRYPOINT 的命令,可以把 nohup 的命令和你的 python -m visdom.server 写到启动脚本里,ENTRYPOINT 设置为启动这个脚本。
nymrli
2021-10-25 00:16:57 +08:00
@mimzy 哇,谢谢,我傻了,RUN 是构建时的命令...妈蛋,经过提醒才能反应出来

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/810214

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX