如果容器已经 运行,如何正确更改 docker-compose.yml 和 Drupal 9 项目文件?

How to make changes to docker-compose.yml and Drupal 9 project files correctly if containers are already running?

  1. 我安装了 DockerDocker Compose
  2. 我下载了最新版本Docker-based Drupal stack还有php、mariadb、apache镜像等)放到我的项目中 文件夹 /var/www/html/mydrupaldocker
  3. 接下来,我在 .envdocker-compose.yml 文件中进行了设置,并使用以下命令 运行 连接容器:
    docker-compose up -d
  4. 从这个文件夹中 运行 宁图像,以及添加 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,以便它们反映新的更改。它可以像从 808080 的简单端口切换一样小。因此,您可以只执行 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

情况二

在这种情况下,您会将整个项目连同来自主机而非容器的 Dockerfiledocker-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