Sac*_*kar 8 dynamic docker docker-compose
我正在做项目的docker化。我想在 docker-compose 文件中动态分配端口。
我在互联网上搜索过,但找不到任何解决方案。有任何建议欢迎提出
services:
db:
image: "mysql:latest"
restart: on-failure
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_DATABASE=
ports:
- 23316:3305
Run Code Online (Sandbox Code Playgroud)
Docker-compose 端口不应分配给特定端口。它应该是动态生成的。
您可以创建单独的.env文件来保存环境相关变量,并在文件中引用这些变量,compose如下所示:
version: '3'
services:
db:
image: "mysql:latest"
restart: on-failure
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_DATABASE=
ports:
- ${DB_PORT}:3306
Run Code Online (Sandbox Code Playgroud)
.env文件DB_PORT=3306
Run Code Online (Sandbox Code Playgroud)
.env文件DB_PORT=23316
Run Code Online (Sandbox Code Playgroud)
将上面的文件复制.env到您的服务器,并将其与您的文件放在同一目录中docker-compose.yml。
当您运行该docker-compose命令时,它会自动将 compose 文件中的环境变量替换为您在.env文件中定义的内容。
假设您已经使用 部署了生产.env文件docker-compose.yml,那么当您运行命令时
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
DB_PORT将被替换为23316.
| 归档时间: |
|
| 查看次数: |
3740 次 |
| 最近记录: |