无法使用entrypoint.sh删除容器中的文件

时间:2017-05-01 16:04:31

标签: docker

我扩展了官方的postgres-9.5图像,使用图像内的转储启动预先填充的容器。 我扩展了entrypoint.sh以执行一些旨在删除重型转储的post-init命令。

postgres
total 427632
drwxr-xr-x  2 postgres postgres      4096 May  1 15:46 .
drwxr-xr-x 59 root     root          4096 May  1 15:54 ..
-rw-r--r--  1 postgres postgres 437876014 Apr 27 07:42 dump.sql
-rw-rw-r--  1 postgres postgres       236 Apr 27 20:20 init-user-db.sh
rm: cannot remove ‘/docker-entrypoint-initdb.d/’: Permission denied

但是我不明白为什么我的部分失败了,也许是因为Docker内部机制在这个阶段使它成为只读,即使是文件的所有者(第一行是whoami)......但是如果我使用docker exec root,我可以手动删除它们。

这不是阻塞问题,但我找不到任何回答我的文档。

编辑: 根据要求,这是我添加到入口点以获得上面的输出

echo
echo 'PostgreSQL init process complete; ready for start up.'
echo

# Cleanup => user=postgresql
whoami
ls -la /docker-entrypoint-initdb.d/
rm -rf /docker-entrypoint-initdb.d/
echo 'Removed init files'

Dockerfile

FROM postgres:9.5

LABEL maintainer "Hiruma"

ADD nightly-dump/ /docker-entrypoint-initdb.d/
ADD init-user-db.sh /docker-entrypoint-initdb.d/init-user-db.sh

RUN chown -R postgres:postgres /docker-entrypoint-initdb.d/

ENTRYPOINT ["docker-entrypoint.sh"]

EXPOSE 5432
CMD ["postgres"]

0 个答案:

没有答案