2016-02-18 29 views
7

Dockerized selenium ızgarası oluşturmak için çalışıyorum. Python testlerimi [pytest ile çalıştırın] bir takma kaptan [aşağıya bakın] ekleyerek ona ekleyebilirim. Ancak, pytest'i kontrol edecek başka bir LAMP konteynırı kurdum. Bu yüzden pytest konteynırını bağımsız yapmak, boşta çalışıp LAMP kabından komutları beklemek istiyorum.Bir docker konteynırında bir hizmet olarak py.test çalıştırın

Bu Dockerfile var:

# 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"] 

ben [gelişimi için] elle pytest kabını başlatmak bununla:

docker run -dit -v /project --name pytest repo/user:py 

şey gelişimini tamamladı olduğunu ve pytest sahip olmak istiyorum konteyner docker-compose'dan başlatıldı ve diğer kaplara [bağlantı ve ses ile] bağlayın. Sadece ayaktayım.

pytest: 
    image: repo/user:py 
    volumes: 
    - "/project" 
    command: "/bin/bash tail -f /dev/null" 

ama hiç bir çalışma:

bunu kullandım.

Docker dosyası içinde belirli bir CMD veya ENTRYPOINT kullanmalı mıyım?

Bazı command'u docker-compose dosyasından kullanmalı mıyım?

+0

docker'ınızda tuhaf olan '-dit' var, ya d, ya da her ikisi de değil, ve Dockerfile'ınızın CMD veya ENTRYPOINT – user2915097

+0

olması gerekiyor. ve sonra ilk varlığa bağlı olan başka bir kap oluşturmaya başladım. Bunun içeren komut ayakta tutmaya ne olacağını ama olması gerektiğini biliyoruz ?? –

+1

Ne @ user2915097 ortalama, sanırım, ihtiyacınız kalmamasıdır 'Onun ', Daemon (arka plan) süreci olarak konteyner çalıştırmak için sadece' -d'. '-it ', konteynırı etkileşimli olarak çalıştırmak ve' tty' ayırmak için kullanışlıdır. – Auzias

cevap

1

Testlerinizin nasıl yürüdüğünden tam olarak emin değilim, ama sanırım benzer bir kullanım durumum var. Bunu Envoy project adresindeki cmd.sh ve a sample test numaralı telefonlarda nasıl yaptığımı görebilirsiniz.

Testlerimi böyle çalıştırıyorum. Ben de pytest kullanıyorum, ancak bu önemli değil: 1. yığınları getirmek için docker-compose kullanın, 2. istekler için yığının hazır olmasını bekleyin. Benim için bu, 200 yanıtı 3 için anket anlamına gelir. 3. test kabını ayrı olarak çalıştırın, ancak oluşturma yığınıyla aynı ağı kullandığından emin olun.

Bu, çeşitli şekillerde yapılabilir. Tüm bunları bir Bash komut dosyasına koyabilir ve ev sahibinizden kontrol edebilirsiniz.

Benim durumumda bunu bir Python konteynerinden yapıyorum. Kafanı etrafına saracak birazcık, ama fikir, ana bilgisayarın başlayacağı bir Python test kabı var. Daha sonra kapsayıcı, desteyi ana bilgisayara (dockerception) geri getirmek için oluşturuyor. Ve sonra test kabında, test testini yapıyoruz. İşi bittiğinde, yığını aşağı oluşturur ve dönüş kodunu iter.

İlgili konular