ドッキングされたセレングリッドの設定に取り掛かりました。私はpytestコンテナ(以下を参照)からPythonテストを実行することができます。 しかし、私はpytestを制御しようとしている別のランプコンテナをセットアップしました。 私はpytestコンテナをスタンドアロンにして、アイドル状態でLAMPコンテナからのコマンドを待っています。サービスとしてドッカーコンテナでpy.testを実行します。
私はこの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:[email protected]/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
事は、私が開発を終え、私はpytestを持つようにしたいということですコンテナをdocker-compose
から起動し、[リンクとボリュームを持つ]他のコンテナに接続します。 私はちょうどそれを維持することはできません。
私はこれを使用:
pytest:
image: repo/user:py
volumes:
- "/project"
command: "/bin/bash tail -f /dev/null"
が、didntの仕事を。
したがって、Dockerファイル内で、特定のCMDまたはENTRYPOINTを使用する必要がありますか?
docker-compose
ファイルからcommand
を使用する必要がありますか?
あなたのドッカーの実行には、奇妙な '-dit'があります。どちらもdまたは両方ではありません.DockerfileにはCMDまたはENTRYPOINTが必要です – user2915097
-ditで最初に起動したので、最初に立ち上がっている別のコンテナを作って立ち上げました。私はそれが含まれているコマンドがそれを維持するだろうが何を持っている必要があることを知っている? –
@ user2915097とは、コンテナをデーモン(バックグラウンド)プロセスとして実行するには 'it'が必要ではなく、' -d'だけを意味すると思います。 '-it'は、対話的にコンテナを実行し、' tty'を割り当てるのに便利です。 – Auzias