栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Docker Compose中运行一次命令

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Docker Compose中运行一次命令

我建议在您的容器中添加一个入口点脚本。在此entrypoint-script中,您可以检查数据库是否已初始化,如果尚未初始化,请执行所需的步骤。

正如您在问题中注意到的那样,不应理会服务/容器的启动顺序,因此有可能在数据库容器 之前 启动了应用程序容器,因此脚本应该考虑到这一点。

例如,看一下官方的WordPress图像,该图像在入口点脚本中执行数据库的一次性初始化。该脚本尝试连接到数据库(如果无法联系数据库,则重试),然后检查是否需要初始化。https://github.com/docker-
library/wordpress/blob/df190dc9c5752fd09317d836bd2bdcd09ee379a5/apache/docker-
entrypoint.sh#L146-L171

注意

我注意到您创建了一个“仅数据容器”来附加您的卷。从Docker 1.9开始,Docker具有卷管理功能,包括命名卷。因此,您不再需要使用“仅数据”容器。

您可以从撰写文件中删除仅数据容器,然后将mongo服务更改为如下所示;

  mongo:    image: mongo:latest    volumes:      - mongodata:/data/db    ports:      - "28001:27017"    command: --smallfiles --rest --auth

这应该创建一个新卷,

mongodata
如果它不存在则命名,或者重新使用具有该名称的现有卷。您可以列出所有使用
docker volumels
的卷,
docker volume rm <some-volume>
如果不再需要它可以删除一个卷



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/426814.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号