我有一个由图像分析模型和2个脚本文件组成的python应用程序。在Main.py中,我有XMLRPC服务器永远运行,监听客户端。码头集装箱在日志中没有错误运行后存在
if __name__ == "__main__":
server = SimpleXMLRPCServer(("0.0.0.0", 8888))
print("Listening on port 8888...")
server.register_function(result, "result")
server.serve_forever()
我Dcokerfile是:
# Start with NVIDIA's CUDA and cuDNN base image.
FROM nvidia/cuda:8.0-cudnn5-devel-ubuntu16.04
# Argument: the username & password.
ARG username
ARG user_password
# Update the system.
RUN echo "debconf debconf/frontend select Noninteractive" | debconf-set-selections
RUN apt-get update
RUN apt-get upgrade --assume-yes
...... bla bla bla
WORKDIR /home/${username}
# Copy the current directory contents into the container at /home/${username}
ADD . /home/${username}
...... bla bla bla
# Expose the ports and start the ssh daemon as entry point.
USER root
EXPOSE 22 6006 8888
ENTRYPOINT ["/usr/sbin/sshd", "-D"]
当我添加CMD运行我Main.py容器不工作,它会立即退出。 我能运行这个容器的最佳做法是什么?我正在使用适用于Linux Ubuntu的Azure Data Science虚拟机。
我建我的Dockerfile有:
docker build . --tag img_processing:V1 --build-arg "username=blabla" --build-arg "user_password=blabla"
而且我跑我的容器有:
docker run -d -p 4000:8888 img_processing
目前我使用docker exec -it my-app-container bash
和我的容器内我管理的东西,运行python Main.py &
运行脚本在我认为不是一个好方法的背景中。特别是我必须找到放大和处理3000张图像的方法。所以每个容器需要有相同的设置。
任何想法?