Ich arbeite an der Einrichtung eines dockerisierten Selen-Gitters. Ich kann meine Python-Tests [run with pytest] aus einem Pytest-Container [siehe unten] senden, indem ich daran anschließe. Aber ich habe einen anderen LAMP-Container eingerichtet, der Pytest steuern wird. Also ich möchte den Pytest-Container eigenständig machen, im Leerlauf laufen und auf Befehle vom LAMP-Container warten.Führen Sie py.test in einem Andock-Container als Dienst aus.
Ich habe diese 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"]
ich starten Sie den pytest Behälter manuell [für Entwicklung] mit diesem:
docker run -dit -v /project --name pytest repo/user:py
Die Sache ist, dass ich fertig Entwicklung und ich möchte die pytest haben Container gestartet von docker-compose
und verbinden Sie es mit anderen Containern [mit Link und Volume]. Ich kann es einfach nicht schaffen, aufzustehen.
ich verwendet, um dieses:
pytest:
image: repo/user:py
volumes:
- "/project"
command: "/bin/bash tail -f /dev/null"
aber nicht funktioniert hat.
Also, in der Dockerfile, sollte ich eine bestimmte CMD oder ENTRYPOINT?
Sollte ich einige command
aus der docker-compose
-Datei?
Ihr docker run hat '-dit' das ist seltsam, es ist entweder d oder es, nicht beide, und ja Ihre Dockerfile sollte eine CMD oder ENTRYPOINT haben – user2915097
Ich startete es zuerst mit -dit, damit ich die Konsole frei habe, und dann startete ich mit einem anderen Container, der davon abhängig war, dass der erste oben war. Ich weiß, dass es doch hätte sein sollen, was der enthaltene Befehl wäre, es weiter zu machen? –
Was @ user2915097 bedeutet, denke ich, ist, dass Sie nicht 'it', nur' -d' benötigen, um den Container als Daemon-Prozess (Hintergrund) auszuführen. Das '-it' ist nützlich, um den Container interaktiv auszuführen und ein' tty' zuzuweisen. – Auzias