docker - 将 shell 命令结果从 docker-compose 传递给 Dockerfile
问题描述
我试图通过 docker-compose 将用户组 ID 从我的 Linux 环境传递到 Dockerfile。我知道 docker-compose.yml 中的“args”,但我需要通过执行 shell commang“getent group mygroup | cut -d: -f3”来找到获取组 ID 的方法。这是一个强制性要求,因为这样容器将分布在不同的环境中,其中组的名称是已知的,并且 id 会有所不同。
这就是我所说的:
version: '3.3'
services:
...
php:
build:
context: './php-fpm'
args:
- GROUP_ID=<HERE I NEED TO GET SHELL COMMAND RESULTS>
container_name: php-fpm
...
有什么方法可以做到这一点吗?
解决方案
不完全是你要求的。
您可以在运行包装脚本之前设置环境变量。例如
export GROUP_ID=`getent group mygroup | cut -d: -f3`
run wrapper script to call your docker-compose file
然后您可以在 docker-compose 文件中检索 GROUP_ID:
args:
- GROUP_ID=${GROUP_ID}
推荐阅读
- sharepoint - 我在使用 Share Point 中的 OData SSIS 组件读取 Excel 文件时遇到问题
- javascript - 是否可以使用由不同版本的 Angular 构建的不同角度元素
- javascript - Process.env.PORT 与硬编码
- html - 需要关闭 pdf 查看器工具栏
- php - 在 laravel 中,可以在数据库中存储带有预定义文本的当前时间,
- oracle - 在 oracle SQL DB 中,相同的主 ID 存在不止一次,但具有不同的 batch_id。如何知道当前批次 ID 之前的批次 ID
- ios - iOS模拟器中的OpenGL非常慢
- aws-lambda - 无服务器 Lambda 函数未正确映射到响应
- java - 调用方法不适用于整数
- c# - C# 访问 ADODB 中的第一个 Recorset 项