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?
moje przypuszczenie jest ':' 'w MySQL: 5.6' rzuca się składnia yaml. Spróbuj zawijać go w cudzysłów: 'image:" mysql: 5.6 "' –
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
Tak, Twoja CMD jest błędna, powinna uruchomić apache jako proces pierwszego planu. –