Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Criando volume no docker-compose.yml

Boa Noite.

Tomando como base o exemplo da aula sobre docker-compose.yml, como posso fazer para que o código alterado em minha máquina seja automaticamente alterado no container?

Segue o arquivo em seu estado atual:

version: '3'
services:
    nginx:
        build:
            dockerfile: ./docker/nginx.dockerfile
            context: .
        image: douglasq/nginx
        container_name: meu_nginx
        ports: 
            - "80:80"
        networks:
            - development-network
        depends_on: 
            - "node01"
            - "node02"
            - "node03"

    mongodb:
        image: mongo
        networks:
            - development-network

    node01:
        build:
            dockerfile: ./docker/alura-books.dockerfile
            context: .
        image: douglasq/alura-books
        container_name: meu_node_01
        ports: 
            - "3000"
        networks:
            - development-network
        depends_on:
            - "mongodb"

    node02:
        build:
            dockerfile: ./docker/alura-books.dockerfile
            context: .
        image: douglasq/alura-books
        container_name: meu_node_02
        ports: 
            - "3000"
        networks:
            - development-network
        depends_on:
            - "mongodb"


    node03:
        build:
            dockerfile: ./docker/alura-books.dockerfile
            context: .
        image: douglasq/alura-books
        container_name: meu_node_03
        ports: 
            - "3000"
        networks:
            - development-network
        depends_on:
            - "mongodb"


networks:
    development-network:
        driver: bridge
4 respostas
solução!

Olá Henrique,

Uma das formas que a comunidade costuma utilizar seria a utilização de volumes, vamos supor que por exemplo temos um servidor web da Apache e temos um projeto em nossa máquina local.

Poderíamos fazer:

volumes:
    - [meu projeto]:/var/www/html

Com isso, ao fazemos uma mudança no nosso projeto local, isso seria refletido no container.

Abs

Ao tentar o código abaixo em um projeto pessoal, não deu certo. Se tento executar um docker container exec -it meu_php bash, vejo que não migrou nenhuma das pastas quando coloco o volume. O que pode ser?

version: '3'
services:
    php:
        build:
            dockerfile: ./docker/php.dockerfile
            context: .
        image: php
        container_name: meu_php
        ports: 
            - "80:80"
        networks:
            - development-network
        volumes:
            - /c/xampp/htdocs/Projetos/Cibus:/var/www/html
        depends_on: 
            - "mysql"

    mysql:
        image: mysql
        container_name: meu_sql
        networks:
            - development-network
        environment:
            MYSQL_USER: root
            MYSQL_ROOT_PASSWORD: admin
        volumes:
            - var/lib/mysql

networks:
    development-network:
        driver: bridge

Olá,

Poderia passar por favor o arquivo do projeto?

Consegui resolver, Rafael. Muito obrigado!