Tôi đang làm việc để thiết lập lưới selenium được xếp chồng lên nhau. Tôi có thể gửi thử nghiệm python của tôi [chạy với pytest] từ một thùng chứa pytest [xem bên dưới] bằng cách gắn vào nó. Nhưng tôi đã thiết lập một LAMP container đó sẽ kiểm soát pytest. Vì vậy, tôi muốn làm cho thùng chứa độc nhất, chạy không tải và chờ các lệnh từ container LAMP.Chạy py.test trong thùng chứa docker như một dịch vụ
Tôi có Dockerfile này:
# 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"]
tôi bắt đầu container pytest bằng tay [phát triển] với điều này:
docker run -dit -v /project --name pytest repo/user:py
Cái này là tôi đã hoàn thành phát triển và tôi muốn có pytest vùng chứa được khởi chạy từ docker-compose
và kết nối nó với các vùng chứa khác [có liên kết và khối lượng]. Tôi không thể làm cho nó ở lại.
Tôi sử dụng này:
pytest:
image: repo/user:py
volumes:
- "/project"
command: "/bin/bash tail -f /dev/null"
nhưng didnt làm việc.
Vì vậy, bên trong Dockerfile, tôi có nên sử dụng CMD hoặc ENTRYPOINT cụ thể không?
Tôi có nên sử dụng một số command
từ tệp docker-compose
không?
trình chạy docker của bạn có '-dit' lạ, nó là d hoặc không, cả hai, và có Dockerfile của bạn nên có CMD hoặc ENTRYPOINT – user2915097
Tôi khởi chạy nó trước tiên với -dit vì vậy tôi có giao diện điều khiển miễn phí, và sau đó tôi khởi chạy với việc tạo một vùng chứa khác tùy thuộc vào lần đầu tiên đang hoạt động. Tôi biết rằng nó nên có nhưng những gì có chứa các lệnh sẽ được để giữ nó lên ?? –
Điều gì @ user2915097 có nghĩa là, tôi đoán, là bạn không cần 'it', chỉ' -d' để chạy các thùng chứa như daemon (nền) quá trình. '-it' hữu ích khi tương tác chạy thùng chứa và phân bổ' tty'. – Auzias