ubuntu16.04基于docker部署laravel项目

 本文记录最近实际工作中部署laravel项目到服务器的全部流程。采用docker部署项目,docker镜像是同事上传到阿里云的一个镜像。

1 首先安装docker

~$ sudo apt-get install docker.io

安装完成后查看版本

~$ docker -v
Docker version 18.06.1-ce, build e68fc7a

2 安装docker-compose

~$ sudo apt-get install docker-compose

验证安装成功:

docker-compose -v
docker-compose version 1.18.0, build 8dd22a9

3 拉取docker镜像到本地

首先登录docker镜像:

~$ docker login --username=zkj@aiaisz.com registry.cn-hangzhou.aliyuncs.com
Password: 
WARNING! Your password will be stored unencrypted in /home/lzj/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

登录成功后再拉取镜像到本地:

~$ docker pull registry.cn-hangzhou.aliyuncs.com/lnmpswoole/sleep:v1.0
v1.0: Pulling from lnmpswoole/sleep

4 创建工作目录

新建一个文件夹  /data,在其中新建一个文件docker-compose.yml,内容:

docker-compose.yml:

version: "2"
services:
    # MySQL 5.7: https://hub.docker.com/_/mysql/
    mysql:
        container_name: mysql
        image: mysql:5.7
        environment:
            MYSQL_ROOT_PASSWORD: "root"
            MYSQL_USER: "youwo"
            MYSQL_PASSWORD: "123456"
            MYSQL_DATABASE: "youwo_dliao"
        volumes:
            - /data/docker/mysql:/var/lib/mysql
        ports:
            - "13306:3306"

   
    redis:
        container_name: redis
        image: redis:3.2.10
        volumes:
            - /data/docker/redis:/data
        ports:
            - "16379:6379"

    sleep:
            container_name: sleep
            image: registry.cn-hangzhou.aliyuncs.com/lnmpswoole/sleep:v1.0
            links:
                - mysql
                - redis
            volumes:
                - /data/docker_user/sleep:/data
            ports:
                - "10191:8084"
                - "10192:80"

这里配置了docker镜像中的mysql,redis,sleep三个容器。sleep是laravel项目名称,它在本地位置在/data/docker_user/sleep目录下,这个目录映射到docker镜像中的/data目录下面。sleep使用的本地端口是10192,它将映射到镜像中的80端口。

mysql数据库在本地机中的位置在/data/docker/mysql目录下,端口13306映射到3306端口下。redis数据库本地位置/data/docker/redis映射到/data目录下,端口16379映射到6379。

所以需要在/data目录下新建俩个目录docker和docker_user。

/data$ ls
docker  docker-compose.yml  docker_user

5 启动docker镜像

在/data目录下执行命令:

/data$ sudo docker-compose up -d
Starting redis ... 
Starting redis ... done
Starting sleep ... done

然后查看docker容器:

/data$ docker container ls
4e012efe06e1        registry.cn-hangzhou.aliyuncs.com/lnmpswoole/sleep:v1.0   "docker-php-entrypoi…"   44 hours ago        Up 44 seconds       22/tcp, 8083/tcp, 9093/tcp, 0.0.0.0:10192->80/tcp, 0.0.0.0:10191->8084/tcp   sleep
71c08b17e847        mysql:5.7                                                 "docker-entrypoint.s…"   44 hours ago        Up 57 seconds       33060/tcp, 0.0.0.0:13306->3306/tcp                                           mysql
e1cdebd66249        redis:3.2.10                                              "docker-entrypoint.s…"   44 hours ago        Up 57 seconds       0.0.0.0:16379->6379/tcp                                                      redis

可以看到sleep容器的id是4e012efe06e1,现在进入这个容器去进行配置。

/data$ docker exec -it 4e012efe06e1 bash
root@4e012efe06e1:/# ls
bin   data  etc   lib	 media	opt   root  sbin  sys  usr
boot  dev   home  lib64  mnt	proc  run   srv   tmp  var
root@4e012efe06e1:/#

已经进入docker镜像了。

6 配置docker镜像

配置镜像中的nginx。

cd /etc/nginx/conf.d/
root@4e012efe06e1:/etc/nginx/conf.d# ls
api.conf  boss_admin.conf
root@4e012efe06e1:/etc/nginx/conf.d# cat api.conf 
server {
    listen 80;
    server_name 192.168.1.48;
    root /data/sleep/public;
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

这里192.168.1.48是本机的ip。然后启动nginx:

/etc/nginx/conf.d# service nginx start

然后启动php:

/etc/nginx/conf.d# service php7.1-fpm start

7 拷贝laveral工程源码

重新打开一个客户端,将larabel工程源码拷贝到/data/docker_user/sleep目录下,

/data/docker_user/sleep$ ls
sleep

并将sleep目录更改权限:

/data/docker_user/sleep$ sudo chmod -R 777 sleep/

进入工程目录,修改.env配置文件:

APP_URL=192.168.1.48:10192

8 使用composer初始化lavaral工程

安装composer软件:

/data/docker_user/sleep/sleep$ sudo apt-get install composer

先确保sleep目录下有composer.json文件,然后执行命令:

/data/docker_user/sleep/sleep$ composer install

这个命令会下载许多php插件,等成功后,会在当前目录下生成vendor文件夹。

9 安装成功

 打开浏览器,输入http://192.168.1.48:10192/,可以看到laravel的界面:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值