2017-09-11 1 views
1

Je pratique les exemples fournis dans le livre Docker in Practice chapitre 3. Voici le fichier Dockerfile mentionné pour exécuter docker avec postgres.Erreur lors de l'exécution de postgres sur docker ubuntubase

FROM ubuntu:14.04 
RUN apt-get update \ 
    && DEBIAN_FRONTEND=noninteractive apt-get install -y \ 
    postgresql \ 
    && apt-get clean \ 
    && rm -rf /var/lib/apt/lists/* 
WORKDIR /opt 
COPY db /opt/db 
RUN service postgresql start && \ 
    cat db/schema.sql | psql && \ 
    service postgresql stop 

Mais la copie à l'étape 4 me donne l'erreur ci-dessous.

$ sudo docker build -t db . 
Sending build context to Docker daemon 2.048kB 
Step 1/4 : FROM ubuntu:14.04 
---> c69811d4e993 
Step 2/4 : RUN apt-get update  && DEBIAN_FRONTEND=noninteractive 
apt-get install -y  postgresql  && apt-get clean  && rm -rf 
/var/lib/apt/lists/* 
---> Using cache 
---> 2ac4ff885d29 
Step 3/4 : COPY db /opt/db 
COPY failed: stat /var/lib/docker/tmp/docker-builder554911929/db: no such file or directory 

quand je la commande a commenté COPY, je reçois différentes erreurs.

Step 4/4 : RUN service postgresql start &&  cat db/schema.sql | psql &&  service postgresql stop 
---> Running in 79e47b45c41a 
* Starting PostgreSQL 9.3 database server 
...done. 
cat: db/schema.sql: No such file or directory 
psql: FATAL: role "root" does not exist 

Répondre

1

COPY db /opt/db est censé copier db de votre contexte actuel (le dossier que vous exécutez docker build de)

Donc, assurez-vous dit dossier en cours ne inclut en fait le dossier db.