让 docker-compose 只运行某些容器

2024-03-27

所以我目前可以使用“docker-compose up test”,它只运行我的数据库和测试脚本。我希望能够说“docker-compose up app”或类似的东西来运行除测试之外的所有内容。这样我就不会运行不必要的容器。我不确定是否有办法,但这就是我想知道的。如果可能的话,我会很感激一些已经做到这一点的链接,我可以弄清楚其余的。基本上,我只能使用单个命令运行某些容器而不运行其他容器。

Yaml

version: '3'
services:
  webapp:
    build: ./literate-app 
    command: nodemon -e vue,js,css start.js
    depends_on:
      - postgres
    links:
      - postgres
    environment:
      - DB_HOST=postgres
    ports:
     - "3000:3000"
    networks:
      - literate-net


  server:
    build: ./readability-server
    command: nodemon -L --inspect=0.0.0.0:5555 server.js
    networks:
      - literate-net


  redis_db:
    image: redis:alpine
    networks:
      - literate-net


  postgres:
    restart: 'always'
    #image: 'bitnami/postgresql:latest'
    volumes:
     - /bitnami
    ports:
      - "5432:5432"
    networks:
      - literate-net
    environment:
      - "FILLA_DB_USER=my_user"
      - "FILLA_DB_PASSWORD=password123"
      - "FILLA_DB_DATABASE=my_database"
      - "POSTGRES_PASSWORD=password123"
    build: './database-creation'


  test: 
    image: node:latest
    build: ./test
    working_dir: /literate-app/test
    volumes:
      - .:/literate-app
    command:
      npm run mocha
    networks:
      - literate-net
    depends_on:
      - postgres
    environment:
      - DB_HOST=postgres


networks:
  literate-net:
    driver: bridge

我可以运行 docker-compose up 测试

它只运行 postgres。尽管我希望能够只运行我的应用程序,而不必运行我的测试容器。

Edit

感谢@ideam 提供的链接

我能够创建一个额外的 yaml 文件用于测试。 对于那些不想查找的人,只需创建一个新的 yaml 文件,如下所示

docker-compose.dev.yml

将 dev 替换为 override 之外的任何内容,这会导致 docker-compose up 自动运行,除非另有指定

要运行新文件,只需调用

docker-compose -f docker-compose.dev.yml up

-f 是用于选择要运行的某个文件的标志。您可以运行多个文件来设置不同的环境

感谢您的帮助


docker-compose up <service_name>将仅启动您指定的服务及其依赖项。 (那些在dependends_on选项。)

您还可以在 docker-compose up 命令中定义多个服务:

docker-compose up <service_name> <service_name>

注意-“启动服务及其依赖项”是什么意思?

通常您的生产服务(容器)通过dependes_on链,因此您只能启动链中的最后一个容器。例如,采用以下撰写文件:

version: '3.7'
services:
  frontend:
    image: efrat19/vuejs
    ports:
      - "80:8080"
    depends_on:
       - backend
  backend:
    image: nginx:alpine
    depends_on: 
      - fpm
  fpm:
    image: php:7.2
  testing:
    image: hze∂ƒxhbd
    depends_on:
      - frontend

所有的服务都链接在depends_on选项,而测试容器位于前端下方。所以当你击中docker-compose up frontenddocker将首先运行fpm,然后是后端,然后是前端,并且它将忽略测试容器,这对于运行前端来说不是必需的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让 docker-compose 只运行某些容器 的相关文章

随机推荐

  • NSView 子类-drawRect:未调用

    我创建了一个NSView子类称为DAView 合并了一系列有用的方法以供以后重用 这很有效 但是 drawRect 从未在任何使用的类中调用DAView 也不在班级本身 为什么 就是这样DAView好像 DAView interface D
  • MySQL SELECT INTO OUTFILE 导出选项

    有谁知道在哪里可以找到 MySQL 的 SELECT OUTFILE 语句的所有导出选项的文档 我注意到在多个问题参数中 例如 FIELDS ENCLOSED BY delimiter FIELDS ESCAPED BY delimiter
  • Google 退出 iOS

    我试图实现社交登录 Google 在我的新应用程序中 为此 我点击了此链接 https developers google com identity sign in ios start integrating http Google 20S
  • 我可以通过编程方式确定 Airflow DAG 是计划的还是手动触发的?

    我想创建一个片段 根据 DAG 是计划的还是手动触发的来传递正确的日期 DAG 每月运行一次 DAG 根据上个月的数据生成报告 SQL 查询 如果我运行预定的 DAG 我可以使用以下 jinja 片段获取上个月的数据 execution d
  • 为什么 CSS 不支持负填充?

    我已经多次看到负填充的前景可能有助于某些页面元素的 CSS 开发变得更好 更容易 然而 W3C CSS 中没有规定负填充 这背后的原因是什么 该财产是否存在任何阻碍其使用的障碍 感谢您的回答 UPDATE例如 正如我所见 如果您使用的字体具
  • 使用 4 个(或 N 个)集合一次仅生成一个值 (1xN)(即为 tuple4+ 进行压缩)

    scala gt val a List 1 2 a List Int List 1 2 scala gt val b List 3 4 b List Int List 3 4 scala gt val c List 5 6 c List I
  • Java - java有类似C#的struct自动构造函数的东西吗

    我已经使用 C 很长时间了 现在我需要用 Java 做一些事情 java中有类似C 的struct自动构造函数的东西吗 我的意思是 在 C 中 struct MyStruct public int i class Program void
  • jQuery 1.6.4 是否已损坏或发生了什么变化? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 它适用于
  • 以编程方式移动 xib 文件中的 UILabel

    Problem 我的 UILabel 在更改其帧信息后没有移动 但在使用 NSLog 输出后 帧信息与正确的位置匹配 但标签本身实际上并没有移动 更多信息 我正在尝试将 UILabel 移动到与 UITextField 相同的位置 两者都包
  • 动态更改列名

    我有一个标题 详细信息自定义屏幕 我在其中根据标题中的下拉选择来操作显示哪些网格列 这工作得很好 但现在我也想更改一些列名称 使用记录的语法 我无法让它工作 我看不出我做错了什么 似乎没有什么区别 我已经附加到进程并在这个事件上设置了一个断
  • 为什么在编译器选项中添加搜索目录后,标准库头内会报告错误?

    我在 CodeBlocks MinGW32 中有一个项目 其设置如下 Foo src somefile1 cpp Foo src somefile2 cpp Foo src somefile1 h 标头是这样包含的 include some
  • JSON.stringify 使用 Knockout JS 变量的对象

    当前场景 function Employee data var self this variables this Forename ko observable data Forename this Surname ko observable
  • __invert__ 方法

    目的是什么 invert 方法 我在探索 Python 内部结构时发现 gt gt gt dir builtins int abs add and bool ceil class delattr dir divmod doc eq floa
  • R - 图例中组合geom_vline和geom_smooth

    添加时我在图例中遇到一些奇怪的行为geom smooth and a geom vline 在我的 ggplot2 图表中 这是一个可重现的示例 library ggplot2 n lt 60 set seed 123 df lt data
  • 如何在给定角度的椭圆轮廓上获取点?

    因此 我给出了椭圆 它们由中点 水平半径 rh 和垂直半径 rv 定义 我使用 sin cos 绘制它们 结果对我来说看起来相当不错 只是确保这不是错误源 现在假设我有一个给定的角度 或方向向量 并且我希望椭圆轮廓上的点具有该角度 方向 我
  • 使用 XPath 选择根和子匹配表达式

    我正在使用 Nokogiri 来解析一些类似于以下内容的 XML
  • 自动调整 div 容器 html 中表格中的列大小

    我正在寻找一种解决方案 最好是在 css 或 html 中 以便我的位于 div 容器内的表格能够压缩其 以便在调整浏览器大小时它们保留在 div 容器内 http lux physicals ucdavis edu public new
  • 这个符号在 IntelliJ 中意味着什么? (文件名左下角红色圆圈,里面有“J”)

    在我创建的 Java 项目的 IntelliJ 的目标文件夹下 包中有一些 java 源文件 每个文件旁边的 J 图标都有一个红色圆圈 中间有一条线 这意味着什么 我如何解决它 您需要指定源目录 File gt Project Struct
  • 使用面板消息/解决方法时的 Java 1.5 JOptionPane 绘制错误?

    我有一个 JOptionPane 其中有一个自定义消息面板 位于面向 Java 1 5 的应用程序中 除其他内容外 该面板还包含一个 JTextField 每调用 20 次左右 对话框中就不会绘制任何内容 甚至 确定 取消 按钮也不会绘制
  • 让 docker-compose 只运行某些容器

    所以我目前可以使用 docker compose up test 它只运行我的数据库和测试脚本 我希望能够说 docker compose up app 或类似的东西来运行除测试之外的所有内容 这样我就不会运行不必要的容器 我不确定是否有办