2015-03-05 8 views
8

Próbuję uruchomić własny kontener i połączyć go z oficjalnym kontenerem mysql. Używam funkcji docker-compose, aby uruchamiać oba kontenery i łączyć je ze sobą. Mój własny kontener ma być zwykłym stosem LAMP, który uruchamia prostą aplikację PHP.Uruchamianie dokera-komponowanie z mysql i własnym kontenerem dokowania

Po uruchomieniu docker-compose up obydwa kompilują się poprawnie, ale gdy proces dokowania próbuje je uruchomić, po prostu zatrzymują się z kodem błędu mytestservice_web_1 exited with code 0. Nie widzę żadnych błędów w dzienniku kompilacji.

Oto moja doker-compose.yml

web: 
    build: . 
    links: 
    - mysql 
    ports: 
    - "80:80" 

mysql: 
    image: mysql:5.6 
    environment: 
    - MYSQL_ROOT_PASSWORD=verysecret 

Oto moja Dockerfile dla własnego pojemnika.

FROM linode/lamp 
WORKDIR /var/www 
RUN a2enmod rewrite 
ADD . /var/www/mytestservice 
ADD mytestservice.conf /etc/apache2/sites-enabled/ 
CMD service apache2 start 

Jeśli uruchomię je ręcznie przy użyciu dokowania, nie ma żadnych problemów.

Jak mogę utrzymać pojemniki w ruchu?

+0

moje przypuszczenie jest ':' 'w MySQL: 5.6' rzuca się składnia yaml. Spróbuj zawijać go w cudzysłów: 'image:" mysql: 5.6 "' –

+0

To nie zadziałało. Myślę, że problem polega na tym, że nie precyzuję, że kontenery będą dalej działać. Używam obrazu lampy, który nie ma jasnego sposobu na kontynuowanie działania, chyba że zacznę od basha. – magnudae

+0

Tak, Twoja CMD jest błędna, powinna uruchomić apache jako proces pierwszego planu. –

Odpowiedz

6

Jak wspomniano w moim komentarzu powyżej:

CMD exec /usr/sbin/apachectl -D FOREGROUND 
Powiązane problemy