如何覆盖 docker 容器中的 属性 文件?
how to overwrite property files in a docker container?
我有一个 docker 容器,里面有我的 springBoot 应用程序的 jar 文件。如何覆盖我的应用程序的 application.property 文件。假设如果我想更改数据源 url ,我该如何通过命令行执行此操作?
- 运行
docker ps
并记下您的容器 ID 的首字母。
- 运行
docker exec -it <id> <bash or sh>
,您将进入 运行ning 容器。
- 转到您的 jar 目录。将您的属性文件作为 application.properties.
放在 config/ 中
- 重新运行你的应用程序,但一定要在后台执行,这样你就可以退出docker。
您无法重新启动主进程 (PID 1)。对于该用例,您需要外部卷并在 属性 文件更改时重新启动容器。
- 创建一个卷:
docker volume create vol1
,你会得到/var/lib/docker/volumes/vol1/
- 更改目录组
sudo chgrp 1001 /var/lib/docker/volumes/vol1/_data
- 向组添加写入权限:
sudo chmod g+w /var/lib/docker/volumes/vol1/_data
- 检查目录权限:
sudo ls -al /var/lib/docker/volumes/vol1/
。它们应该是:drwxrwxr-x
- 下次您 运行 您的容器时,将包含 jar 文件的文件夹安装到您的卷中,如下所示:
docker run -d --name=webApp1 --mount source=vol1,destination=/path/to/app -p port:port name
- 您可以更改
/var/lib/docker/volumes/vol1/_data/
中的 属性 文件并重新启动容器:docker restart container_name
免责声明: 在 jar 之外替换属性文件被认为不是一个好的做法,非常不鼓励。因此,这些步骤仅建议用于测试。
我有一个 docker 容器,里面有我的 springBoot 应用程序的 jar 文件。如何覆盖我的应用程序的 application.property 文件。假设如果我想更改数据源 url ,我该如何通过命令行执行此操作?
- 运行
docker ps
并记下您的容器 ID 的首字母。 - 运行
docker exec -it <id> <bash or sh>
,您将进入 运行ning 容器。 - 转到您的 jar 目录。将您的属性文件作为 application.properties. 放在 config/ 中
- 重新运行你的应用程序,但一定要在后台执行,这样你就可以退出docker。
您无法重新启动主进程 (PID 1)。对于该用例,您需要外部卷并在 属性 文件更改时重新启动容器。
- 创建一个卷:
docker volume create vol1
,你会得到/var/lib/docker/volumes/vol1/ - 更改目录组
sudo chgrp 1001 /var/lib/docker/volumes/vol1/_data
- 向组添加写入权限:
sudo chmod g+w /var/lib/docker/volumes/vol1/_data
- 检查目录权限:
sudo ls -al /var/lib/docker/volumes/vol1/
。它们应该是:drwxrwxr-x
- 下次您 运行 您的容器时,将包含 jar 文件的文件夹安装到您的卷中,如下所示:
docker run -d --name=webApp1 --mount source=vol1,destination=/path/to/app -p port:port name
- 您可以更改
/var/lib/docker/volumes/vol1/_data/
中的 属性 文件并重新启动容器:docker restart container_name
免责声明: 在 jar 之外替换属性文件被认为不是一个好的做法,非常不鼓励。因此,这些步骤仅建议用于测试。