docker - 将变量从 docker build 文件传递到 docker 文件
问题描述
我试图将变量简单地从 docker build 文件传递给 docker 文件,但是该变量永远不会被解析
version: '3'
services:
movie-discovery-server:
container_name: movie-discovery-server
build:
args:
PORT: 8761
context: /Users/admin/Downloads/movie-discovery-server
dockerfile: Dockerfile
image: movie-discovery-server:latest
environment:
- PORT=8761
expose:
- 8761
这是 Dockerfile
FROM openjdk:8
ADD ./target/movie-discovery-server-0.0.1-SNAPSHOT.jar movie-discovery-server-0.0.1-SNAPSHOT.jar
ARG PORT
ENTRYPOINT ["java", "-jar", "movie-discovery-server-0.0.1-SNAPSHOT.jar", "--server.port=$PORT"]
但是 $PORT 从未解决
---编辑---原来我在我的文件中犯了几个错误,我下面的答案将包含正确的文件格式
解决方案
使用 json 数组格式时,也不会解析变量ENTRYPOINT
。CMD
如果您需要解析 PORT,请使用入口点脚本或使用 shell 格式表示法ENTRYPOINT
ENTRYPOINT java -jar movie-discovery-server-0.0.1-SNAPSHOT.jar --server.port=$PORT
推荐阅读
- go - 尽管在导入的 .proto 文件中定义了未定义的函数
- python - 更改 kivymd 中 TwoLineAvatarIconListItem 的颜色
- python - 更改代码以允许超过 3 个堆叠条
- kubernetes - OCP CronJob 需要哪些 API
- airflow - Airflow 任务可以在运行时动态生成 DAG 吗?
- jupyter-notebook - 当磁盘上的文件发生更改时,如何让 jupyter 自动恢复
- android - TextToSpeech.addEarcon() 和 TextToSpeech.addSpeech() 之间的区别
- python - 使用 Python 从 xml url 获取数据
- javascript - 正则表达式包括所有直到关闭的 html 标记
- python - 将数据帧索引从字符串 mmm/dd 转换为日期时间