如果容器已经 运行,如何正确更改 docker-compose.yml 和 Drupal 9 项目文件?
How to make changes to docker-compose.yml and Drupal 9 project files correctly if containers are already running?
- 我安装了 Docker 和 Docker Compose
- 我下载了最新版本Docker-based Drupal stack
(还有php、mariadb、apache镜像等)放到我的项目中
文件夹
/var/www/html/mydrupaldocker
- 接下来,我在
.env
和 docker-compose.yml
文件中进行了设置,并使用以下命令 运行 连接容器:
docker-compose up -d
- 从这个文件夹中 运行 宁图像,以及添加 unzip drupal 9 folder 到我的项目文件夹后,我将开始在浏览器中安装 drupal 9。
我对两种可能的情况有疑问:
情况一:
我在文件中犯了错误docker-compose.yml
我有负责少数图像的注释代码。因此,容器没有启动。而我想把项目放在电脑的另一个地方(不重要,但可取)
我能做到:
docker-compose stop
docker-compose rm
修复我需要的一切。又是 运行:
docker-compose up -d
这样做对吗?或者我还需要其他东西吗?
情况№2:
一切都设置好了,运行安装了所有必要的容器,在容器中安装了 Drupal 9 站点。然后我创建了一个子主题,添加了内容,在php、js、css文件等中写了代码
我现在如何提交更改?您需要在终端中编写什么命令?例如,在 git 等技术中,这是通过命令完成的:
git add.
git commit -m "first"
Docker是怎么做到的?可能会出现需要把容器回滚到下面版本的情况。
好的,让我们逐一分析。
情况一
每当您对 docker-compose.yml
进行更改时,都可以重新启动 service/images,以便它们反映新的更改。它可以像从 80
到 8080
的简单端口切换一样小。因此,您可以只执行 docker-compose stop && docker-compose up -d
并且 docker-cli
将使用新更改重新启动容器。
您 不需要 删除 containers/services 除非您使用了自定义 Dockerfile
并对其进行了更改。虽然,您的以下假设仍然会给出相同的结果,但它只是有一个 额外的步骤来移除容器,而不会对实际的 docker 图像进行任何更改.
I can do: docker-compose stop
docker-compose rm
Fix everything that I need. And run again:
docker-compose up -d
情况二
在这种情况下,您会将整个项目连同来自主机而非容器的 Dockerfile
和 docker-compose.yml
文件一起提交给 git
。这里没有火箭科学。
您不会通过容器将您的代码提交给git。容器仅用于部署和测试您的代码。您将只提交配置文件,即 Dockerfile
(如果在场外使用自定义)和 docker-compose.yml
文件以及您的源代码到 git。结果是,任何在团队中与您合作的开发人员都可以直接参与项目,运行 docker-compose up -d
和相同的 containers/services 运行ning在你的机器上将启动并运行在另一个开发者的主机上。
关于如何回滚到旧版本的 docker
服务,您可以回滚到以前的提交,docker-compose.yml
将被还原。那么你可以这样做:
docker-compose down && docker-compose up -d
- 我安装了 Docker 和 Docker Compose
- 我下载了最新版本Docker-based Drupal stack
(还有php、mariadb、apache镜像等)放到我的项目中
文件夹
/var/www/html/mydrupaldocker
- 接下来,我在
.env
和docker-compose.yml
文件中进行了设置,并使用以下命令 运行 连接容器:
docker-compose up -d
- 从这个文件夹中 运行 宁图像,以及添加 unzip drupal 9 folder 到我的项目文件夹后,我将开始在浏览器中安装 drupal 9。
我对两种可能的情况有疑问:
情况一:
我在文件中犯了错误docker-compose.yml
我有负责少数图像的注释代码。因此,容器没有启动。而我想把项目放在电脑的另一个地方(不重要,但可取)
我能做到:
docker-compose stop
docker-compose rm
修复我需要的一切。又是 运行:
docker-compose up -d
这样做对吗?或者我还需要其他东西吗?
情况№2:
一切都设置好了,运行安装了所有必要的容器,在容器中安装了 Drupal 9 站点。然后我创建了一个子主题,添加了内容,在php、js、css文件等中写了代码
我现在如何提交更改?您需要在终端中编写什么命令?例如,在 git 等技术中,这是通过命令完成的:
git add.
git commit -m "first"
Docker是怎么做到的?可能会出现需要把容器回滚到下面版本的情况。
好的,让我们逐一分析。
情况一
每当您对 docker-compose.yml
进行更改时,都可以重新启动 service/images,以便它们反映新的更改。它可以像从 80
到 8080
的简单端口切换一样小。因此,您可以只执行 docker-compose stop && docker-compose up -d
并且 docker-cli
将使用新更改重新启动容器。
您 不需要 删除 containers/services 除非您使用了自定义 Dockerfile
并对其进行了更改。虽然,您的以下假设仍然会给出相同的结果,但它只是有一个 额外的步骤来移除容器,而不会对实际的 docker 图像进行任何更改.
I can do:
docker-compose stop
docker-compose rm
Fix everything that I need. And run again:
docker-compose up -d
情况二
在这种情况下,您会将整个项目连同来自主机而非容器的 Dockerfile
和 docker-compose.yml
文件一起提交给 git
。这里没有火箭科学。
您不会通过容器将您的代码提交给git。容器仅用于部署和测试您的代码。您将只提交配置文件,即 Dockerfile
(如果在场外使用自定义)和 docker-compose.yml
文件以及您的源代码到 git。结果是,任何在团队中与您合作的开发人员都可以直接参与项目,运行 docker-compose up -d
和相同的 containers/services 运行ning在你的机器上将启动并运行在另一个开发者的主机上。
关于如何回滚到旧版本的 docker
服务,您可以回滚到以前的提交,docker-compose.yml
将被还原。那么你可以这样做:
docker-compose down && docker-compose up -d