在ubuntubase docker上运行postgres时出错

时间:2017-09-11 04:44:44

标签: docker dockerfile

我正在练习Docker in Practice第3章中提供的示例。 下面是使用postgres运行docker时提到的Dockerfile。

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

但是第4步中的副本给出了以下错误。

 $ 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

当我评论COPY命令时,我得到了不同的错误。

 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

1 个答案:

答案 0 :(得分:1)

COPY db /opt/db应该从您当前的上下文(您正在执行的文件夹db)中复制docker build

因此,请确保当前文件夹确实实际包含db文件夹。