我正在设置一个基于Docker的Selenium网格。我可以通过附加到一个pytest容器[如下所示]来发送我的Python测试[使用pytest运行]。但是,我设置了另一个LAMP容器来控制pytest。所以,我想让pytest容器独立运行,处于空闲状态,并等待来自LAMP容器的命令。
我有这个Dockerfile:
# Starting from base image
FROM ubuntu
#-----------------------------------------------------
# Set the Github personal token
ENV GH_TOKEN blablabla
# Install Python & pip
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y python python-pip python-dev && pip install --upgrade pip
# Install nano for #debugging
RUN apt-get install -y nano
# Install xvfb
RUN apt-get install -y xvfb
# Install GIT
RUN apt-get update -y && apt-get install git -y
# [in the / folder]
RUN git clone https://$GH_TOKEN:x-oauth-basic@github.com/user/project.git /project
# Install dependencies via pip
WORKDIR /project
RUN pip install -r dependencies.txt
#-----------------------------------------------------
#
CMD ["/bin/bash"]
我手动启动pytest容器[用于开发],使用以下命令:
docker run -dit -v /project --name pytest repo/user:py
问题是我已经完成了开发工作,我想要从docker-compose
启动pytest容器,并将其连接到其他容器[使用link和volume]。但我无法使它保持运行。
我使用了以下代码:
pytest:
image: repo/user:py
volumes:
- "/project"
command: "/bin/bash tail -f /dev/null"
但是并没有生效。
因此,在Dockerfile内部,我应该使用特定的CMD还是ENTRYPOINT?
我应该使用docker-compose文件中的某些command
吗?
-dit
,这很奇怪,它应该只有 d 或 it 中的一个,而不是两个都有。另外,你的 Dockerfile 应该有一个 CMD 或 ENTRYPOINT。 - user2915097it
,只需要-d
将容器作为守护进程(后台)运行。-it
用于交互式地运行容器并分配一个tty
。 - Auzias