Postgresql Dockerfile不';如果入口点为';没有完成
我正在尝试运行一个运行PostgreSQL的Dockerfile,然后向其中添加一些表 这是我的Dockerfile:Postgresql Dockerfile不';如果入口点为';没有完成,postgresql,docker,cmd,dockerfile,docker-entrypoint,Postgresql,Docker,Cmd,Dockerfile,Docker Entrypoint,我正在尝试运行一个运行PostgreSQL的Dockerfile,然后向其中添加一些表 这是我的Dockerfile: FROM postgres:9.6 MAINTAINER agomez@ikerlan.es USER postgres ADD ./backup.sql /backup.sql ADD ./deploy/import_database.sh /import_database.sh USER root RUN chmod +x /import_database.sh U
FROM postgres:9.6
MAINTAINER agomez@ikerlan.es
USER postgres
ADD ./backup.sql /backup.sql
ADD ./deploy/import_database.sh /import_database.sh
USER root
RUN chmod +x /import_database.sh
USER postgres
ENTRYPOINT ./docker-entrypoint.sh postgres
CMD ./import_database.sh
入口点没有完成,因为它运行postgres服务器。
例如,在运行入口点20秒后,但没有完成入口点,如何运行CMD
可能吗?这不是
CMD
和ENTRYPOINT
的工作方式。我建议阅读并查看图表,以便更好地了解入口点
和CMD
是如何相互作用的
也就是说,如果您只想在运行时导入一个SQL文件或运行一个脚本,那么官方的PostgreSQL映像已经涵盖了您。有关如何执行此操作的信息,请参阅
对于Dockerfile
(如果您只想导入SQL文件)的示例是执行以下操作:
FROM postgres:9.6
ADD ./backup.sql /docker-entrypoint-initdb.d/backup.sql
当从此
Dockerfile
上的映像构建启动容器时,默认的ENTRYPOINT
脚本将启动一个临时PostgreSQL实例,等待它准备就绪,导入数据,然后重新启动以提供连接。这不是CMD
和ENTRYPOINT
的工作方式。我建议阅读并查看图表,以便更好地了解入口点
和CMD
是如何相互作用的
也就是说,如果您只想在运行时导入一个SQL文件或运行一个脚本,那么官方的PostgreSQL映像已经涵盖了您。有关如何执行此操作的信息,请参阅
对于Dockerfile
(如果您只想导入SQL文件)的示例是执行以下操作:
FROM postgres:9.6
ADD ./backup.sql /docker-entrypoint-initdb.d/backup.sql
从该
Dockerfile
上的映像生成启动容器时,默认的ENTRYPOINT
脚本将启动一个临时PostgreSQL实例,等待它准备就绪,导入数据,然后重新启动以提供连接。真的谢谢!!它非常适合我:),我会读到CMD
和ENTRYPOINT
是如何一起工作的。真的谢谢!!它非常适合我:),我会读到CMD
和ENTRYPOINT
是如何协同工作的。