美文网首页我爱编程
Docker+NextCloud搭建

Docker+NextCloud搭建

作者: 努力的Jason | 来源:发表于2018-06-13 23:43 被阅读0次

        ​ nextcloud的运行需要一个PHP运行环境和一个数据库作为依赖,服务器可以选传统的apache和nginx,但是apache和nginx配置比较复杂,我没有去仔细看,所以本文中采用一个golang开发的轻量级服务器Caddy,Caddy配置起来很简便,官方介绍甚至可以在28s配置好一个支持http2的server。

        ​ 为了快速搭建nextcloud和服务器的整洁,采用了docker的方式运行。

     一.Docker和docker-compost安装

    yum install epel-release 

    yum install docker 

    service docker start

    安装docker-compose

    curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

    chmod +x /usr/local/bin/docker-compose

    测试

    docker-compose --version

     二.创建独立网络配置caddy文件

    docker network create nextcloud

    ​ 新建一个名为Caddyfile的文件,内容如下

    example.com {

      proxy / 233.233.233.233:6666 {

          header_upstream Host {host}

          header_upstream X-Real-IP {remote}

          header_upstream X-Forwarded-Proto {scheme}

      }

      log /var/log/caddy.log

      gzip

    }

    ​ proxy为代理地址和端口

    ​ log为日志文件地址

    ​ gzip为压缩方式

    ​ Candy的好处在于不用花太多时间去配置服务器,不用申请ssl,但是如果有需要还是可以用nginx来代替。

     三.镜像配置

    ​ 新建一个docker-compose.yml的文件,

    version: '2'

    services:

    #采用mysql数据库作为用户管理

      db:

        container_name: cloud_db

        image: mysql

        volumes:

          - ./data/cloud/mysql:/var/lib/mysql #映射mysql地址

        restart: always

        environment:

          MYSQL_ROOT_PASSWORD: root #mysql的root密码

          MYSQL_DATABASE: nextcloud #数据库名

      app:

        container_name: cloud_app

        depends_on:

          - db

        image: nextcloud

        volumes:

          - ./data/cloud/config:/var/www/html/config #nextcloud的配置文件

          #nextcloud的数据存储,用户上传的文件会直接到这个文件夹下,以用户名分类

          - ./data/cloud/data:/var/www/html/data

          - ./data/cloud/apps:/var/www/html/apps #nextcloud插件的地址

        links:

          - db

        ports:

          - "6666:80" #映射端口

        restart: always

      cron:

        container_name: cloud_cron

        image: nextcloud

        links:

          - db

        volumes_from:

          - app

        user: www-data

        entrypoint: |

          bash -c 'bash -s <

          trap "break;exit" SIGHUP SIGINT SIGTERM

          while /bin/true; do

            /usr/local/bin/php /var/www/html/cron.php

            sleep 900

          done

          EOF'

        restart: always

      web:

        container_name: cloud_web

        image: abiosoft/caddy

        volumes:

          - ./Caddyfile:/etc/Caddyfile #映射candy的配置文件,这个是步骤二中新建的Caddyfile

          - ~/.caddy:/root/.caddy

        ports:

          - 80:80

          - 443:443

        restart: always

    networks:

      default:

        external:

          name: nextcloud

    文件保存后,用docker-comese开始pull镜像

    docker-compose up -d

    配置完成后,可以通过    ip:映射端口      地址访问

    首次登陆需要设置admin的用户名和密码,还有数据地址和用户名密码。


    相关文章

      网友评论

        本文标题:Docker+NextCloud搭建

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