如何使用 shell 文件将参数传递给 docker-compose.yml



我有docker-compose.yml,如下所示:

version: '2'
services:
  eureka-server:
    image: some-dtr-name/some-orgname/some-reponame:some-versionname
    mem_limit: somememory
    environment:
      SPRING_PROFILES_ACTIVE: some-profile
      JAVA_OPTS: -Xms256m -Xmx512m
    ports:
    - "some-port:some-port"
    restart: always
    networks:
    - cloud
networks:
  cloud:
   driver: bridge
我想传递一些 dtr 名称、一些组织名称、一些

reponame、一些版本名称、一些内存、一些配置文件、一些配置文件、一些端口作为 docker-compose 文件的 aurgument。我正在使用外壳文件执行此任务。

#!/bin/bash
some-dtr-name="$1"
some-orgname="$2"
some-reponame="$3"
some-versionname="$4"
somememory="$5"
some-profile="$6"
some-profile="$7"
some-port="$8"
docker-compose up

我该如何完成此任务?

Docker compose 支持环境变量替换,使用 ${} 语法:https://docs.docker.com/compose/compose-file/#variable-substitution

因此,如果您定义了环境变量some_port,那么在运行 docker-compose 之前,您只需将其引用为 docker-compose 文件中的${some_port}即可。

ports:
- "${some_port}:${some_port}"

需要注意的另一件事是,示例代码中的变量名称包含短划线-,这在bash中无效

name 仅由字母数字字符和下划线组成,以字母字符或下划线开头的单词。也称为标识符。

您必须改用下划线字符_

相关内容

  • 没有找到相关文章

最新更新