当前位置: 首页 > 知识库问答 >
问题:

Docker Swarm:堆栈部署过程中忽略Docker组合文件中的“构建”配置

洪飞驰
2023-03-14

我们已经创建了一个带有多个服务的docker组合文件。这些服务的映像是在运行时使用“构建”配置选项构建的。相应的Dockerfile在各自的目录中给出。

示例docker组合文件...

version: '3'
services:
  db2server:
    build: ./db2server
    ports:
      - "50005:50000"
    command: ["db2start"]
  appruntime:
    build: ./appruntime
    depends_on:
     - db2server

这个docker组合文件使用docker-compose命令。

  • 这些映像是从db2server&appruntime
  • 目录中的Dockerfile在运行时构建的
  • 这些映像部署在主机中
Ignoring unsupported options: build

Creating network app_default
Creating service app_db2server
failed to create service app_db2server: Error response from daemon: rpc error: code = InvalidArgument desc = ContainerSpec: image reference must be provided

共有1个答案

颛孙霖
2023-03-14

简短的回答是,您不能将build命令与Docker stack Deploy一起使用。

从文档中:

注意:在使用(版本3)组合文件以群集模式部署堆栈时,忽略Docker stack命令Build选项。Docker Stack命令只接受预生成的图像。

使用docker build命令创建docker图像;将创建的图像推送到(公共或私有)Docker注册表;并在Docker compose文件中引用它。

 类似资料:
  • 我有一个库,这是一个Spring Boot项目。该库有一个library.yml文件,其中包含用于其配置的dev和prod道具: 但是当我检查env的值时,我得到的是“prod”。为什么? 我如何告诉Spring Boot使用library.yml中的活动(例如dev)配置文件道具? 注意:我更喜欢使用。yml而不是。properties文件。

  • 下面是我的pom.xml: 在Entourage-0.0.1-snapshot.jar中,config.properties位于根,其内容与上面相同(即localhost)。 我不是在胡编乱造!

  • 和其他基于 vue 模板项目一样,构建和部署都十分简单。 生产环境构建 生产环境构建出的所有静态资源默认输出在 /dist 文件夹下。 $ npm run build 执行命令后,在控制台的输出主要分成两部分,第一部分是 sw-precache 缓存的静态资源列表。 第二部分就是 vue 模板项目通用的最终生成的静态资源列表。 部署到服务器 由于 Lavas 导出模板中项目默认使用了 vue-r

  • 当我通过控制台给出zip文件夹路径时,我有一个程序。它将遍历文件夹中的每个项目(每个子项目、子项目的子项目等)。但是如果它遇到一个zip文件夹,它会忽略zip文件夹中的所有内容,我需要读取zip文件夹中的所有内容,包括文件。 以下是贯穿每个项目的方法: 在父zip文件夹内访问的项目(我的控制台输出): 正如你所看到的程序只去直到2021-11-23_103518.zip,并在另一条路径之后,但20

  • 但却被忽略了。 是否可以使用maven激活配置文件?

  • 问题内容: 我需要使用以下命令创建一个zip文件: 这可行,但是创建的zip文件会创建一个目录结构,将目录模仿为原始文件。我不需要很多额外的文件夹。 粗略浏览手册页或Google搜索时,我没有找到答案。 问题答案: 您可以使用。