1
resposta

[Dúvida] Error response from daemon

Na aula "Criação do Dockerfile", depois de seguir o procedimento da criação do arquivo Dockerfile, fui executar o comando "docker compose up --build" e apresentou esse erro:

[+] Building 1.6s (9/9) FINISHED                                                                                                                                                                        
 => [internal] load local bake definitions                                                                                                                                                         0.0s
 => => reading from stdin 607B                                                                                                                                                                     0.0s
 => [internal] load build definition from Dockerfile                                                                                                                                               0.0s
 => => transferring dockerfile: 109B                                                                                                                                                               0.0s
 => [internal] load metadata for docker.io/library/golang:1.22                                                                                                                                     1.6s
 => [internal] load .dockerignore                                                                                                                                                                  0.0s
 => => transferring context: 2B                                                                                                                                                                    0.0s
 => [internal] load build context                                                                                                                                                                  0.0s
 => => transferring context: 28B                                                                                                                                                                   0.0s
 => [1/2] FROM docker.io/library/golang:1.22@sha256:1cf6c45ba39db9fd6db16922041d074a63c935556a05c5ccb62d181034df7f02                                                                               0.0s
 => CACHED [2/2] COPY ./main /app/main                                                                                                                                                             0.0s
 => exporting to image                                                                                                                                                                             0.0s
 => => exporting layers                                                                                                                                                                            0.0s
 => => writing image sha256:8cdf55b3e66511dbb974ad6d07da8476a62c304c8b11accf3acbb58968d70c7c                                                                                                       0.0s
 => => naming to docker.io/library/3983-integracao-continua-main-app                                                                                                                               0.0s
 => resolving provenance for metadata file                                                                                                                                                         0.0s
[+] Running 1/1
 ✔ 3983-integracao-continua-main-app  Built                                                                                                                                                        0.0s 
Attaching to app-1, postgres-1
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/home/raphael/Documentos/DevOps/3983-integracao-continua-main/postgres-data" to rootfs at "/var/lib/postgresql/data": change mount propagation through procfd: open o_path procfd: open /var/lib/docker/overlay2/0614904300dd230880153a1483712be31305d708f1869b402019c7e522ef29c9/merged/var/lib/postgresql/data: no such file or directory: unknown

Link do projeto se for preciso: https://github.com/raphaeldesm/integracao-continua-main

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

E ai Raphael tudo bem?
Vou tentar lhe ajudar com as informações fornecidas.
Esse erro que você recebeu está relacionado ao volume do Postgres no docker-compose.yml.
O trecho importante da mensagem é este:

error mounting "/home/raphael/Documentos/DevOps/3983-integracao-continua-main/postgres-data" to rootfs at "/var/lib/postgresql/data"

Ou seja, o Docker está tentando montar o diretório postgres-data (que você definiu no docker-compose.yml) no container, mas não está conseguindo.

  1. Verifique se a pasta existe localmente
    No seu host (máquina local), entre no diretório do projeto e veja se a pasta postgres-data foi criada:
cd /home/raphael/Documentos/DevOps/3983-integracao-continua-main
ls -l

Se não existir, crie:

mkdir postgres-data
  1. Verifique permissões da pasta
    O Docker precisa de permissão para acessar a pasta. Ajuste as permissões:
chmod -R 777 postgres-data

(mais permissivo, mas garante que funcione; depois você pode restringir se quiser)
3. Confirme o volume no docker-compose.yml
Normalmente, para Postgres, fica algo assim:

services:
  postgres:
    image: postgres:15
    restart: always
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb
    ports:
      - "5432:5432"
    volumes:
      - ./postgres-data:/var/lib/postgresql/data

Verifique se está nesse formato.
4. Suba novamente os containers
Depois de criar a pasta:

docker compose down -v
docker compose up --build

O -v remove volumes antigos que podem estar corrompidos.
O problema é que a pasta postgres-data não existia ou não estava acessível para o Docker.
Criar a pasta e ajustar as permissões deve resolver.
Testa ai e ve se é isso mesmo.
Se surgir mais algum erro comenta ai ou envie um feedback de qualquer jeito.
Bons estudos.
Obrigado.
:)