首页 > 后端开发 > Golang > 正文

如何在部署期间在 Docker Compose 中执行单执行命令?

Linda Hamilton
发布: 2024-11-08 18:57:02
原创
416 人浏览过

How to Execute a Single-Execution Command in Docker Compose During Deployment?

在 Docker Compose 中运行单执行命令

为了使用 Docker Compose 高效部署 Go Web 服务器,您可能会遇到障碍在部署期间尝试仅执行一次命令时。这个特定的命令 ./my-project -setup 仅在项目编译后才需要运行,以将基本信息添加到数据库中。

Docker Compose 没有为这种需求提供直接的解决方案,但您可以通过向容器引入入口点脚本来规避它。在此脚本中,您可以执行检查来验证数据库是否已初始化,如果没有,则继续执行所需的步骤。

需要注意的是,Docker Compose 中容器启动的顺序是不一致。这意味着应用程序容器可能会在数据库容器之前启动,从而可能导致数据库不准确。入口点脚本应该考虑这种可能性并进行相应调整。

例如,您可以从官方 WordPress 图像的方法中汲取灵感。该镜像使用入口点脚本尝试建立与数据库的连接,并根据连接状态执行必要的初始化过程:https://github.com/docker-library/wordpress/blob/df190dc9c5752fd09317d836bd2bdcd09ee379a5/apache/docker-entrypoint .sh#L146-L171.

此外,您可以通过消除使用“仅数据容器”来安装卷来简化 Docker Compose 配置。从 Docker 1.9 开始,Docker 支持卷管理,包括命名卷。这允许您排除仅数据容器并相应地修改 Mongo 服务配置:

mongo:
    image: mongo:latest
    volumes:
      - mongodata:/data/db
    ports:
      - "28001:27017"
    command: --smallfiles --rest --auth
登录后复制

此修改将创建或重用名为“mongodata”的卷。要列出或删除卷,请使用命令 dockervolume ls 和 dockervolume rm ;分别。

以上是如何在部署期间在 Docker Compose 中执行单执行命令?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!