首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头和Drupal 8- settings.php

码头和Drupal 8- settings.php
EN

Stack Overflow用户
提问于 2016-03-06 01:02:15
回答 1查看 2.1K关注 0票数 2

我正在尝试修改Drupal 8,并且遇到了这样的问题:在容器中运行Drupal 8并安装它之后,如果我然后删除容器并重新启动它,它会提示再次安装它。

问题是,在安装Drupal时,会创建一个带有数据库详细信息的settings.php文件。

我想要创建一个systemd单元文件,以便以一种智能的方式启动Drupal 8容器,即使它被删除了,下次也应该用相同的安装重新启动。

有人建议我使用ConditionPathExists=编写一个systemd单元文件,根据它是否在本地安装settings.php,但是我认为这不会完全起作用,因为在容器中安装时,生成的settings.php文件不会被持久化回主机。

那么,我如何解决为Drupal创建一个Docker容器的问题--如果Drupal还没有安装它,那么从那时起,即使删除和重建容器,也要使用已安装的实例?

EN

回答 1

Stack Overflow用户

发布于 2016-03-06 05:06:47

我强烈建议使用drupal的正式码头形象。

这节省了很多时间,如果您仍然需要自定义您的环境,那么至少可以查看它的Dockerfile,看看社区是如何做到的。

容器持久化

当容器停止时,可以重新启动它。它的所有文件都被保存,包括可能已经创建的任何settings.php文件。

一个全新的容器,另一方面,总是从零开始,没有简单的方法来避免这一点。要在容器实例中持久化数据,需要使用卷。

https://docs.docker.com/engine/userguide/containers/dockervolumes/

这是如何做到的:

代码语言:javascript
复制
#
# Create a data container
#
docker create \
  -v /var/www/html/sites \
  -v /var/www/private \
  --name my-data \
  drupal

#
# Run drupal without a db container (select sqlite on first install)
#
docker run --volumes-from my-data --name my-drupal -p 8080:80 -d drupal

注意:

  • 您可以使用到主机的卷映射,但是这种数据容器模式更灵活,例如在升级drupal时。

它是如何工作的

Drupal 8构建在官方PHP语言映像之上。

在PHP中,注意如何在前景中运行Apache

代码语言:javascript
复制
CMD ["apache2-foreground"]

不需要在容器内运行系统。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35821846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档