gpt4 book ai didi

docker - 由于 “mount volume over existing file”而导致Docker构建失败

转载 作者:行者123 更新时间:2023-12-02 18:53:57 30 4
gpt4 key购买 nike

由于以下错误,我遇到了构建失败的问题:
Step 12/13 : VOLUME /var/lib/postgresql/data
cannot mount volume over existing file, file exists /var/lib/docker/aufs/mnt/a3d9ab74930d907691fb8870a29ea08b8fab0bd0fd7ecb1064982be512d904fa/var/lib/postgresql/data

我之前构建了镜像,然后在本地运行(不装载卷),然后编辑了Dockerfile,然后尝试再次构建它。我已经删除了所有停止的容器,并删除了所有悬空的卷。 docker volume ls没有显示卷,但是仍然出现此错误。此外,每次我运行它时,mnt更改错误消息后的目录名称。

Dockerfile:

FROM multiarch/alpine:armhf-v3.7
ENV GOSU_DOWNLOAD_KEY="0x036A9C25BF357DD4"

ENV PGDATA /var/lib/postgresql/data

ADD pg_hba.conf /var/lib/postgresql/data
ADD postgresql.conf /var/lib/postgresql/data
ADD docker-entrypoint.sh /

RUN apk add --update --no-cache postgresql tzdata curl gnupg && \
gpg-agent --daemon && \
gpg --keyserver pgp.mit.edu --recv-keys $GOSU_DOWNLOAD_KEY && \
echo "trusted-key $GOSU_DOWNLOAD_KEY" >> /root/.gnupg/gpg.conf && \
curl -sSL https://github.com/tianon/gosu/releases/download/1.10/gosu-armhf > gosu && \
curl -sSL https://github.com/tianon/gosu/releases/download/1.10/gosu-armhf.asc > gosu.asc && \
gpg --verify gosu.asc && \
rm gosu.asc && \
mv gosu /usr/bin/gosu && \
chmod +x /usr/bin/gosu && \
apk del --purge curl gnupg && \
rm -rf /root.gnupg

ENTRYPOINT /docker-entrypoint.sh
EXPOSE 5432

VOLUME /var/lib/postgresql/data

CMD "postgres"

为什么这些构建失败?我正在使用docker for mac。

最佳答案

您可以使用ADD postgresql.conf /var/lib/postgresql/data复制postgres配置,该配置的路径与您尝试使用VOLUME /var/lib/postgresql/data挂载的卷的路径相同,不允许使用该路径来防止意外行为。

关于docker - 由于 “mount volume over existing file”而导致Docker构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48108540/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com