0
  1. 我安装了DockerDocker Compose
  2. 我下载了最新版本的基于 Docker 的 Drupal 堆栈有 php、mariadb、apache 图像等)并将其放在我的项目文件夹中/var/www/html/mydrupaldocker
  3. 接下来,我在.envanddocker-compose.yml文件中进行了设置,并使用以下命令运行容器:
    docker-compose up -d
  4. 从这个文件夹运行图像,并将解压缩的 drupal 9 文件夹添加到我的项目文件夹后,我将开始在浏览器中安装 drupal 9。

我对两种可能的情况有疑问:


情况№1:

我在文件中犯了错误,docker-compose.yml我有注释代码,它负责少数图像。因此,容器没有启动。并且我想把项目放在电脑的另一个地方(不是很关键,但它是可取的)

我可以:
docker-compose stop
docker-compose rm

修复我需要的一切。再次运行:

docker-compose up -d

这样做是否正确?还是我需要别的东西?


情况二:

一切都设置好了,运行所有必要的容器,在容器中安装了 Drupal 9 站点。然后我创建了一个子主题,添加内容,用php、js、css文件等编写代码。

我现在如何提交更改?您需要在终端中编写哪些命令?例如,在 git 等技术中,这是通过以下命令完成的:
git add.
git commit -m "first"

它是如何在 Docker 中完成的?可能会出现需要将容器回滚到以下版本的情况。

4

1 回答 1

0

好的,让我们逐个案例。

情况一

每当您对 进行更改时docker-compose.yml,都可以重新启动服务/图像,以便它们反映新的更改。它可能像从80到的简单端口切换一样小8080docker-compose stop && docker-compose up -d因此,您可以docker-cli使用新更改重新启动容器。

除非您使用自定义并对其进行了更改,否则您实际上并不需要删除容器/服务。Dockerfile虽然,您的以下假设仍然会给出相同的结果,但它只是有一个额外的步骤来移除容器,而不会对实际的 docker images 进行任何更改

我可以:docker-compose stop docker-compose rm

修复我需要的一切。再次运行:

docker-compose up -d

情况二

在这种情况下,您将提交整个项目git以及来自主机而不是容器的文件Dockerfiledocker-compose.yml这里没有火箭科学。

不会通过容器将代码提交给 git。这些容器仅用于部署和测试您的代码。您将只提交配置文件,即Dockerfile(如果在课程外使用自定义)和docker-compose.yml文件连同您的源代码到 git。结果将是,任何在团队中与您合作的开发人员都可以提取项目并运行docker-compose up -d,并且在您的机器上运行的相同容器/服务将启动并在其他开发人员的主机上运行.

关于如何回滚到旧版本的docker服务,您可以回滚到以前的提交,并且docker-compose.yml将被还原。然后你可以这样做:

docker-compose down && docker-compose up -d

于 2021-08-08T05:53:08.863 回答