Dúvida em docker compose e Dockerfile

Principal Forums Instalação e configuração Dúvida em docker compose e Dockerfile

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #41103 Reply
    Silvio augusto
    Guest

    Amigos boa tarde, tenho uma dúvida quando vou criar um docker compose, por exemplo eu sempre vejo que apenas um DockerFile é criado quando se usa o docker compose, pelo o que eu tenho lido no Dockerfile eu ponho sempre a imagem base que eu vou criar os meus serviços, correto? mas se eu for subir por exemplo um servidor web, um banco de dados e um php eu ficaria em dúvida em qual desses colocar no Dockerfile, me desculpe se não fui claro na minha dúvida, caso tenham entendido poderiam exemplificar pra mim colocando uma situação específica?

    #41155 Reply
    Diego Feitosa
    Guest

    Olá Silvio Augusto,

    Primeiramente o Dockerfile é para criar uma imagem que o Docker Compose irá utilizar. Só é necessário utilizar um Dockerfile se for preciso estabelecer um serviço que precisa de mais configurações e instalações que o padrão da imagem. Por exemplo o MySQL já vem com todo o básico para rodar, não é preciso criar um Dockerfile para ele, mas caso deseje fazer um projeto PHP com algum framework ou CMS, ai será preciso fazer um dockerfile para que a imagem tenha todo o necessário. Por exemplo, quero criar uma imagem com todo o básico do Laravel que se conecte a um MySQL, então faço a seguinte Dockerfile:

    
    FROM php:7
    
    WORKDIR /app
    
    RUN apt-get update \
    && apt-get install -y zlib1g-dev libxml2-dev libmagickwand-dev --no-install-recommends \
    && docker-php-ext-install mbstring zip xml pdo pdo_mysql \
    && rm -r /var/lib/apt/lists/* \
    && php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
    && php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \
    && php composer-setup.php \
    && php -r "unlink('composer-setup.php');"  \
    && mv composer.phar /usr/local/bin/composer \
    && composer global require "laravel/installer"
    

    Dai executo com o seguinte comando ( digamos que eu criei uma pasta chamada dockerfiles e nela criei o arquivo acima com o nome de laravel ):

    
    docker build -f dockerfiles/laravel -t laravel:latest .
    

    Isso irá criar uma imagem com o Laravel instalado, no qual será utilizado como criar os serviços que precisem do Laravel.

Viewing 2 posts - 1 through 2 (of 2 total)
Reply To: Dúvida em docker compose e Dockerfile
Your information:




eighteen + = twenty two