把博客系统导入docker搭建的lnmp环境

2017-11-02 14:24:50

    下面开始把博客系统导入docker中,因为我们有了一个数据卷,所以我们直接把代码放到宿主机的wwwroot中即可,在wwwroot目录下执行

    git clone https://gitee.com/nosay/blog.git blog

    因为博客成分比较复杂,暂时就不开源了

    程序导入以后,先行执行 docker-compose exec --user=laradock workspace bash

    然后在容器中执行以下命令

    (注意,此处是在docker容器中执行的)

    cd /var/www/blog/
    composer config -g repo.packagist composer https://packagist.phpcomposer.com  
    composer install

    这一步是使用中国全量镜像下载必要安装文件,安装完以后,进入/wwwroot文件中执行

    cp .env.example .env

    然后打开网站看一眼,报错    Connection refused [tcp://127.0.0.1:xxxxx]

    这是出于安全考虑,我更换了redis的默认端口,以及重设了密码

    我们通过修改Dockerfile文件,来实现,执行

    cd ~/laradock/redis

    修改Dockerfile文件内容为   

    FROM redis:latest    
    
    MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
    
    ## For security settings uncomment, make the dir, copy conf, and also start with the conf, to use it
    RUN mkdir -p /usr/local/etc/redis
    COPY redis.conf /usr/local/etc/redis/redis.conf
    
    VOLUME /data
    
    EXPOSE xxxxx(这个换成你自己的端口)
    
    CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]
    #CMD ["redis-server"]

    其中,需要准备好redis.conf文件,内容略,但是要注意的是redis.conf配置文件中,daemonize的值一定要设置为no,否则容易一启动就中止了,还有bind 要改为0.0.0.0,不然无法互通。然后在.env文件中搜索REDIS_PORT修改默认端口

    最后修改:docker-compose.yml,找到redis,修改开放端口,这样就完成了redis的配置。执行

    docker-compose down
    docker-compose build redis
    docker-compose up -d nginx redis mysql

    接下来就需要配置mysql了,我们首先要把root默认密码更换了

    进入root容器

    docker-compose exec mysql bash

    进入mysql,修改默认密码

    update mysql.user set authentication_string=password('xxxxxx') where user='root' and Host = 'localhost';

    然后重启mysql容器即可,打开网站,发现提示错误又变了,提交找不到数据库。这说明我们mysql已经连接成功了。

    接下来我们再开一个phpmyadmin容器,便于数据导入,执行命令

    docker-compose up -d phpmyadmin

    然后访问网址:8080即可打开phpmyadmin应用,然后直接建立数据库导入数据就可以了,用完记得把容器关掉,以免造成安全隐患。

    导入数据后,继续打开网站,以现网站已经能够打开了,但是样式是乱的,那是因为我们还没有编译前端所需要的js和css

    编译是需要安装node,以及npm的,你可以选择在容器中安装,也可以选择在宿主中安装,这个就暂且不表了,至此博客基本上已经导入了docker系统,下面我们需要在docker中安装sphinx以及python和jre。