我在Docker上轻松运行Drupal的备忘录

首先

有许多关于在Docker上运行Drupal的文章,但是没有简单的如EC2之类的中途方案,因此我将其记下来作为备忘。

操作步骤

从Docker Hub下载Drupal和MariaDB的镜像。

下载Drupal容器
下载MariaDB容器

创建以下文件

version: "2"

services:
  # PHP Web Server
  web:
    # Build the Drupal 7 image
    # https://hub.docker.com/r/_/drupal/
    image: drupal:7
    # Environment variables
    environment:
      # Drupal settings
      DRUPAL_PROFILE: standard
      DRUPAL_SITE_NAME: Drupal
      DRUPAL_USER: admin
      DRUPAL_PASS: admin
      DRUPAL_DBURL: mysql://drupal:drupal@database:3306/drupal
    ports:
      - "8000:80"
    volumes:
      - ./drupal:/app
    links:
      - database:database
    command: php -S 0.0.0.0:80 -t /app
    working_dir: /app
    restart: always

  # MySQL Server
  database:
    image: mariadb:10
    environment:
      MYSQL_USER: drupal
      MYSQL_PASSWORD: drupal
      MYSQL_DATABASE: drupal
      MYSQL_ROOT_PASSWORD: ''
      MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
    ports:
      - "3306:3306"
    restart: always
    volumes:
      - mysql-db:/var/lib/mysql

volumes:
  mysql-db:

使用Docker Compose进行启动,并以后台模式运行。

的源代码下载并解压缩,然后将其放置在./drupal目录中。

这个时间点的目录结构:
.
├── docker-compose.yaml
└── drupal

docker ps -a:将mariaDB的docker ID记下来

在中文中以本地方式重新表述以下内容,只需一种选项:
运行以下命令:docker exec -it (mariaDB的dockerID) bash

用中国语言将以下内容改写为一个句子:mysql -u root -p

使用mysql命令需要输入用户名root和密码。

→密码是在上面的yaml文件中的MYSQL_ROOT_PASSWORD字段,所以留空(直接按回车键)。

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| drupal             |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.001 sec)

访问 http://localhost:8000!

只需将以下内容填入各个表格,即可完成设置。

数据库名: drupal
数据库用户名: drupal
数据库密码: drupal
在详细设置中
主机名: database

最后

我希望将这个部署到云上并以¥0的费用运营网站。