Birden çok hizmetle Docker-Compose


103

BU ÖRNEK BİR SORU! ASLA ÜRETİMDE YAPMAYIN. NGINX / PHP / DİĞER HİZMETLERİ AYRI KONTEYNERLERDE ÇALIŞTIRIN!

docker-compose upUbuntu konteynerini başlattığımda ubuntu exited with code 0.

Koştuğumda docker run -d -ti -p 80:80 -v ~/sph/laravel52:/www/laravel ubuntuher şey yolunda gidiyor.

Docker Compose kullanarak bu davranışı nasıl çoğaltabilirim?

Bu benim Dockerfile:

# Version: 0.0.1
FROM ubuntu:15.04



ENV DEBIAN_FRONTEND noninteractive

#INSTALL ALL
RUN apt-get update && apt-get install -y  \
       nano \
       php5-fpm \
       php5-mysql \
       nginx



#NGINX CONF
ADD nginx/sites-available/laravel.conf /etc/nginx/sites-available/
RUN rm /etc/nginx/sites-available/default
RUN mv /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-available/default

VOLUME /www


ENTRYPOINT nginx && service php5-fpm start && /bin/bash

CMD ["true"]


EXPOSE 80

Ve docker-compose.yml:

version: '2'
services:
  ubuntu:
        build: .
        container_name: ubuntu
        volumes:
            - ~/sph/laravel52:/www/laravel
        ports:
          - "80:80"

Bunu bilerek yapabileceğinizi anlıyorum ENTRYPOINT nginx && service php5-fpm start && /bin/bash. Ancak bu kararın ne anlama geldiğini anlamıyorsanız, aşağıdaki github.com/phusion/baseimage-docker
Daniel Stefaniuk

Resim adı. Benim hatam. Ubuntu
Tim Devlet

Yanıtlar:


236

Mesele şu ki -t, konteynırınızı çalıştırırken bu seçeneği kullanıyorsunuz .

Docker-compose.yml dosyanızdaki ttyseçeneğin etkinleştirilip etkinleştirilmediğini ( referansa bakın ), konteynerin çalışmaya devam edip etmediğini kontrol edebilir misiniz ?

version: '2'
services:
  ubuntu:
        build: .
        container_name: ubuntu
        volumes:
            - ~/sph/laravel52:/www/laravel
        ports:
          - "80:80"
        tty: true

4
Bir hata mesajı ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.aldınız tty: truemı : ekledikten sonra ?
Winters

1
tty, sözde bir uçbirim yarattığı için çalışır. SQL Server 2017 kapsayıcısında benzer bir sorun yaşadım. Bağımsız modda sorunsuz çalışıyordu, ancak çoklu kapsayıcı senaryosu için docker-compose modunda çıkıyordu. İşte düzeltmek için tty ile yaptığım şey handsonarchitect.com/2018/01/…
Gule

@NileshGule, tty'nin neden işe yaradığını açıklamak için zaman ayırdığınız için teşekkürler, ancak, eğer sakıncası yoksa biraz daha fazlasını bilmek istiyorum. Bir sözde terminal oluşturmak, çıkmayı tam olarak nasıl engelleyecektir? Tekrar teşekkürler.
Luis Milanese

3
@LuisMilanese genellikle ön plan işlemi docker konteyner içinde tamamlandığında, işin tamamlandığını varsayar ve konteyner örneğini temizler. Ancak Veritabanı motoru ve web sunucuları gibi şeylerin çalışmaya devam etmesi gerekiyor. Bir sözde uçbirim yaratarak, konteyner canlı kalır. Bu iş akışını docker logs << container name >> komutunu tty ile ve tty olmadan çalıştırarak görebilirsiniz
Nilesh Gule

tty benim için çalışmıyor .. docker-
compose'un
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.