我是 Docker 的新手。我有一个小型 Java 应用程序,我试图在 Docker 中运行它。我创建了一个Dockerfile来构建映像。
我的应用程序正在读取环境变量以了解要连接到哪个数据库。
运行命令时
docker run -d -p 80:80 occm -e "MYSQL_USER=user" -e "MYSQL_PASSWORD=password" -e "MYSQL_PORT=3306" -e "MYSQL_HOST=somehost"
Run Code Online (Sandbox Code Playgroud)
然后使用 枚举所有变量System.getenv,我没有看到任何变量。所以我已经添加到Docker文件中
ENV MYSQL_HOST=localhost
Run Code Online (Sandbox Code Playgroud)
现在,当我运行容器时,我看到了这个变量,但我看到的是它的localhost值而不是somehost.
我究竟做错了什么?
问题在于您如何运行 docker 映像。
$ docker run --help
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Run Code Online (Sandbox Code Playgroud)
所以,你-e "..." -e "..."作为命令和参数传递
您需要-e用作 [OPTIONS]。
$ docker run -d -p 80:80 -e "MYSQL_USER=user" -e "MYSQL_PASSWORD=password" -e "MYSQL_PORT=3306" -e "MYSQL_HOST=somehost" occm
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1351 次 |
| 最近记录: |