相关疑难解决方法(0)

Docker compose:服务中“环境”选项的插值格式无效

嗨在 docker compose 我有:

 environment:
      - AWS_ACCESS_KEY_ID=$(aws --profile default configure get aws_access_key_id)
      - AWS_SECRET_ACCESS_KEY=$(aws --profile default configure get aws_secret_access_key)
Run Code Online (Sandbox Code Playgroud)

但它返回给我一个类似主题的错误。任何人都知道如何传递这些变量?

谢谢

docker docker-compose

31
推荐指数
5
解决办法
3万
查看次数

24
推荐指数
2
解决办法
1万
查看次数

如何在 docker compose 中使用 : in name 定义环境值?

我想传递一个ABC:DEF名为docker-compose.yml.

怎么做?

如果我写在服务定义中

environment:
    ABC:DEF: ${ABC:DEF}
Run Code Online (Sandbox Code Playgroud)

我有

ERROR: Invalid interpolation format for "environment" option in service: "${ABC:DEF}"

编辑:这个问题的目标是了解是否可以使用包含:冒号的环境变量名称以及如何在docker-compose.yml. 从受影响容器内运行的“事物”的角度讨论使用冒号的替代方案:不是问题的一部分。

docker docker-compose

9
推荐指数
1
解决办法
6475
查看次数

如何在无服务器 yaml 配置中转义 $ 登录?

我想在为 api 网关使用阶段变量时转义 $ 符号。

当我尝试部署时出现以下错误。

变量 stageVariables.capabilitySecurityUrl 的变量引用语法无效。您只能引用环境变量、选项和文件。您可以查看我们的文档以获取更多信息。

我尝试了以下选项,但不起作用

1) 使用不带引号的 Uri:https://${stageVariables.capabilitySecurityUrl}

2) 使用引号 Uri: "https://${stageVariables.capabilitySecurityUrl}"

3) 从文件访问变量

./stageVariables.json
{
   "capabilitySecurityUrl":"https://${stageVariables.capabilitySecurityUrl}"
}

./serverless.yml
${file(./stageVariables.json):capabilitySecurityUrl}
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?

yaml amazon-web-services aws-api-gateway serverless-framework

6
推荐指数
1
解决办法
1194
查看次数

为什么在 docker 后台使用带有“守护进程关闭”的 nginx?

这一切都从这篇关于在 docker 中设置 nginx 和 certbot 的文章开始。在手册的最后,作者使用以下命令为 nginx 进行了自动证书更新:

command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
Run Code Online (Sandbox Code Playgroud)

我不是唯一一个不理解这部分的人,所以有一个问题:Why do sleep & wait in bash?

得到的答案是原始命令并不完美,这是更正后的版本:

/bin/sh -c 'nginx -g \"daemon off;\" & trap exit TERM; while :; do sleep 6h  & wait $${!}; nginx -s reload; done'
Run Code Online (Sandbox Code Playgroud)

但在这个命令中我看到nginx -g \"daemon off;\" & 为什么我们首先将 nginx 放在前台然后将其放入后台?有什么影响?为什么不首先在后台启动 nginx?

另一个问题:据我了解,while与原始命令不同,该周期保留在 docker 的前台。但是如果nginx if后台,是否意味着它死了,docker不在乎?前台while仍在工作,没问题。 …

bash nginx docker

6
推荐指数
1
解决办法
8518
查看次数

如何在 Docker Compose 中添加 $(...)

我有一个 docker-compose.yml,其中包含在 CentOS7 上启动 jenkins-server 的内容:

jenkins:
  image: jenkins
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - $(which docker):/usr/bin/docker:ro
    - /usr/lib64/libsystemd-journal.so.0:/usr/lib/x86_64-linux-gnu/libsystemd-journal.so.0
    - /usr/lib64/libsystemd-id128.so.0:/usr/lib/x86_64-linux-gnu/libsystemd-id128.so.0
    - /usr/lib64/libdevmapper.so.1.02:/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02
    - /usr/lib64/libgcrypt.so.11:/usr/lib/x86_64-linux-gnu/libgcrypt.so.11
    - /usr/lib64/libdw.so.1:/usr/lib/x86_64-linux-gnu/libdw.so.1
  ports:
    - "8080:8080"
Run Code Online (Sandbox Code Playgroud)

但是我无法运行撰写,因为我在$(which docker):/usr/bin/docker:ro. 我该如何解决这个问题?

错误: ERROR: Invalid interpolation format for "volumes" option in service "jenkins": "$(which docker):/usr/bin/docker:ro"

是否仍然无法包含环境变量?我正在寻找最正确的解决方案。谢谢

jenkins centos7 docker-compose docker-volume

3
推荐指数
1
解决办法
5390
查看次数

如何在Ansible host_vars文件中转义$符号

我有一个Ansible剧本(YAML),它可以部署Web应用程序,并且作为部署过程的一部分,它可以创建和初始化各种数据库以及某些表中的某些数据。

剧本任务:

  - name: insert Meter Managers to mdm_connection
    shell : "psql -d {{ mdm_config_db }} -c \"insert into mdm_connection (mdm_connection_type_id, name, db_type, host, port, catalog, username, password) values (3, '{{ item.name }}', '{{ item.db_type }}', '{{ item.host }}', {{ item.port }}, '{{ item.catalog }}', '{{ item.username }}', '{{ item.password }}');\""
    with_items: "{{ meter_managers }}"
    when: item != ""
    sudo_user: postgres
    tags:
      - initDB
Run Code Online (Sandbox Code Playgroud)

host_vars:

meter_managers:
  - name: SAMPLE
    db_type: ""
    host: "http://www.example.com/axis2/services/Example/"
    port: -1
    catalog: ""
    username: csa1
    password: …
Run Code Online (Sandbox Code Playgroud)

yaml ansible

1
推荐指数
1
解决办法
1772
查看次数