美文网首页
Docker 环境安装 Drupal 8

Docker 环境安装 Drupal 8

作者: 六月圈圈 | 来源:发表于2020-03-09 13:19 被阅读0次

    记录一次无比曲折的docker环境安装drupal8的过程。目前从网上搜到的例子都是很复杂的,并且直接将drupal映射到volumes,我想要安装简单的纯drupal环境,并且可以在本地随时编辑drupal文件。

    需要的环境

    1. docker
    2. docker-compose

    1. 创建docker-compose.yml配置文件

    # docker-compose.yml
    version: "3"
    
    services:
      web:
        image: nginx:$NGINX_TAG
        container_name: "${PROJECT_NAME}_nginx"
        ports:
          - $NGINX_PORT
        volumes:
          - "./drupal/web:/var/www/html"
          - "./drupal/nginx.conf:/etc/nginx/conf.d/default.conf"    
        depends_on:
          - php 
    
      php:
        image: drupal:$DRUPAL_TAG
        container_name: "${PROJECT_NAME}_drupal"
        volumes:
          - "./drupal/web:/var/www/html"
        restart: always
        depends_on:
          - mysql
    
      mysql:
          image: mysql:$MYSQL_TAG
          container_name: "${PROJECT_NAME}_mysql"
          command: mysqld --default-authentication-plugin=mysql_native_password
          environment:
            MYSQL_ROOT_PASSWORD: $DB_ROOT_PASSWORD
            MYSQL_USER: $DB_USER
            MYSQL_PASSWORD: $DB_PASSWORD
            MYSQL_DATABASE: $DB_NAME
          volumes:
            - "./drupal/mysql:/var/lib/mysql"
          ports:
            - $DB_PORT
          restart: always
    

    2. 创建.env文件

    # .env
    PROJECT_NAME=drupal8
    DRUPAL_VERSION=8.8.3
    DRUPAL_TAG=8.8-fpm-alpine
    NGINX_TAG=alpine
    NGINX_PORT=8080:80
    
    ###  database ###
    MYSQL_TAG=8
    DB_NAME=drupal
    DB_USER=admin
    DB_PASSWORD=admin
    DB_ROOT_PASSWORD=root
    DB_PORT=33060:3306
    

    3. 下载drupal8安装文件

    正常情况下上面的drupal8 container会下载安装文件并放到对应的文件夹里,但是有时候会下载出错或者并没有下载文件,所以创建我们可以手动下载drupal并放到对应的目录下。
    大家可以到Drupal官网下载,也可以通过执行下面到文件下载。

    # drupal-install.sh
    #! /bin/bash
    [[ -f .env ]] && source .env
    if [ $DRUPAL_VERSION ]
    then 
        echo "Start with Drupal version ${DRUPAL_VERSION}"
    else
        echo "Drupal version is not defined. Set the default version to 8.6.12"
        DRUPAL_VERSION='8.6.12'
    fi
    mkdir drupal/web
    curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz
    mv drupal.tar.gz drupal/web
    cd drupal/web
    tar -zx --strip-components=1 -f drupal.tar.gz
    rm drupal.tar.gz
    

    启动docker之前先执行上面的文件sh docker-install.sh下载drupal

    4. 启动docker

    上面的文件都写好了之后,就可以启动docker了

    docker-compose up

    image.png

    启动成功之后可以通过 http://localhost:8080 访问drupal站点了。安装drupal连接数据库的时候,host 填写mysql,port填写3306。

    5. 问题记录

    mysql 8连接的问题

    mysql 8 修改了密码连接方式,所以我在用navicat连接mysql的时候总是在出错,然后在docker-compose.yml里的mysql下添加了一句命令修改密码验证方式command: mysqld --default-authentication-plugin=mysql_native_password

    image.png

    参考文章和网址

    drupal:https://hub.docker.com/_/drupal
    mysql:https://hub.docker.com/_/mysql
    Local Drupal 8 Development with Docker
    Local environment with Docker4Drupal

    相关文章

      网友评论

          本文标题:Docker 环境安装 Drupal 8

          本文链接:https://www.haomeiwen.com/subject/uetpdhtx.html