简介

简述一下我用docker来配置laravel环境

软件镜像

  • php:7.2-rc-fpm-alpine
  • mysql:5.6
  • nginx:1.12.2-alpine

配置环境

  • Ubuntu:16.04
  • macOS:Sierra

以上两个操作系统我都实验过,均能运行


准备

注意点:要是宿主机上面开着mysql和nginx服务的,请停止服务,要不然两个服务分别占用:3306和80或443端口,使得容器无法启动

service mysql stop
ps -ef|grep nginx
kill pid# nginx 的进程号

配置过程

从github上下载配置文件

git clone https://github.com/daimonster/PHP-env.git

切换版本

git checkout laravel5.5

生成php镜像

cd php && docker build -t dai/php:laravel .

特别要注意的是镜像名字不能随便填,如果想要改成别的名字,一定要记得将docker-compose.yml文件中的镜像的名字改成一样的

顺便介绍一些有用的docker操作:

  • 批量删除所有镜像:docker rmi $(docker images -q)
  • 批量停止所有容器:docker stop $(docker ps -aq)
  • 批量删除所有容器:docker rm $(docker ps -aq)

运行docker-composer

docker-compose.yml内容

version: "3"
services:
nginx:
image: nginx:1.12.2-alpine
ports:
#改成127.0.10.10这样不会与localhost冲突
- "127.0.10.10:80:80"
- "127.0.10.10:443:443"
volumes:
- ~/Git-Documents:/home/code:rw # ~/Git-Documents 是我自己的存放代码的目录,需要改成自身存放代码的地方
- ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf:ro#配置nginx
- ./conf/nginx/vhost:/etc/nginx/conf.d:ro#配置nginx
- ./log/nginx:/var/log/nginx:rw
networks:
- code-network php:
image: dai/php:laravel
volumes:
- ~/Git-Documents:/home/code:rw # 这里同上
- ./conf/php/php.ini-development:/usr/local/etc/php/php.ini:ro # 配置php
networks:
- code-network
mysql:
image: mysql:5.6
ports:
- "3310:3306"
volumes:
- ./conf/mysql/my.cnf:/etc/mysql/my.cnf:ro
- ./data/mysql:/var/lib/mysql:rw
- ./log/mysql:/var/log/mysql:rw
environment:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_USER: "test"
MYSQL_PASSWORD: "test123"
networks:
code-network:
driver: bridge

运行命令:

# 前台运行
docker-composer up
# 后台运行
docker-composer up -d

对php容器进行修改

docker ps查看正在运行中的容器,然后进入php容器

docker exec -it [容器ID] sh

创建laravel项目

composer create-project laravel/laravel Laravel --prefer-dist "5.4.*"

给访问用户权限

sudo chown -R :www-data /home/ubuntu/Code/Laravel
sudo chmod -R 775 /home/ubuntu/Code/Laravel/storage

如果能成功显示laravel页面,就OK了

使用docker配置laravel5.5环境的更多相关文章

  1. Mac上通过docker配置PHP开发环境

    这篇文章介绍的内容是关于Mac上通过docker配置PHP开发环境,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 更多PHP相关知识请关注我的专栏PHP​zhuanlan.zhihu. ...

  2. Docker教程:使用docker配置python开发环境

    http://blog.csdn.net/pipisorry/article/details/50808034 Docker的安装和配置 [Docker教程:docker的安装] [Docker教程: ...

  3. 用 Docker 快速配置前端开发环境

    来源于:http://dockone.io/article/1714 今天是你入职第一天. 你起了个大早,洗漱干净带着材料去入职. 签了合同,领了机器,坐到工位,泡一杯袋装红茶,按下开机键,输入密码, ...

  4. 安装docker及配置Android开发环境

    安装docker 官方原来的安装docker的脚本https://get.docker.com/已经过时,现在使用的是https://get.docker.com/,命令如下: curl -s htt ...

  5. 怎么使用Docker搭建PHP开发环境呢?

    在Docker流行之前,要搭建开发环境通常有两种选择:一种是使用wamp.xampp.mamp等集成开发环境安装包,另外一种就是使用普通虚拟机来安装linux服务器,然后通过下载一键安装包(如:lnm ...

  6. Docker集群实验环境布署--swarm【1 架构说明】

    在读完<Docker技术入门与实践>这本书后,基本上已对Docker了有一些入门的理解,以及我们为什么要使用Docker 答:我们发现在实际工作中,通过openstack一旦把一个VM创建 ...

  7. 如何用docker安装laravel开发环境

    如何用docker安装laravel开发环境 看laravel框架的官方文档安装部分时,发现需要安装特别多软件,估计还有许多复杂的配置,官方推荐使用Laravel Homestead虚拟机进行安装,但 ...

  8. selenium结合docker构建分布式测试环境

    selenium是目前web和app自动化测试的主要框架.对于web自动化测试而言,由于selenium2.0以后socker服务器由本地浏览器自己启动且直接通过浏览器原生API操作页面,故越来越多的 ...

  9. Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现

    前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...

随机推荐

  1. Dubbo源码剖析五之服务本地缓存

    Dubbo调用者需要通过注册中心(例如:ZK)注册信息,获取提供者.但是如果频繁从ZK获取信息肯定会存在单点故障问题,所以Dubbo提供了将提供者信息缓存在本地的方法. Dubbo在订阅注册中心的回调 ...

  2. ServiceStack.Redis的源码分析(连接与连接池)

    前几天在生产环境上redis创建连接方面的故障,分析过程中对ServiceStack.Redis的连接创建和连接池机制有了进一步了解.问题分析结束后,通过此文系统的将学习到的知识点整理出来. 从连接池 ...

  3. java 接口 文件传输

    调用接收端 @ApiOperation(value = "文件请求展示方法") @RequestMapping(value = "/showFile", met ...

  4. 防世界之Web_warmup

    题目: 啥都没有,右键打开页面源代码查看一下  发现source.php源文件,输入http://111.200.241.244:53776/source.php看看 <?php    high ...

  5. Remix本地化,加载本地合约文件,本地链接Remix

    智能合约IDE,在线的比较卡,而且切换网络面临文件丢失的风险,选择本地搭建Solidity本地编辑环境,Remix-IDE + Remixd组合,加载本地合约代码.这里用到两个工具: Remix ID ...

  6. 【windows安全性 之访问控制】 访问控制 详细解说

    windows的安全性的两个基本支柱是身份验证(登入)和授权(访问控制). 身份验证是标识用户的过程 ,授权在验证了所标识用户是否可以访问特定资源之后进行. 相关的命名空间和类: System.Sec ...

  7. MySQL 学习-进阶

    MySQL高级学习 一.MySQL 事务 1.1.事务的概念 一条或多条 SQL 语句组成一个执行单元,其特点是这个单元要么同时成功要么同时失败,单元中的每条 SQL 语句都相互依赖,形成一个整体,如 ...

  8. layui模板注册表单

    今天晚上用layui模板做了一个简单的注册表单,功能主要有可以js验证密码重复,可以验证手机号码. 这是界面 下面是我的html文件代码 <!DOCTYPE html> <html ...

  9. c# winform中TabControl中给每个选项卡添加不同的图标(图片)

    在一个TabControl控件中,有几个选项卡,现在在每个选项卡上显示不同的图标. 1:你要现在form窗体中通过工具箱加入一个imagelist,名字为imagelist1,如下图: 2:然后在里面 ...

  10. mysql通过mysqldunp命令重做从库详细操作步骤

    mysql通过mysqldunp命令重做从库详细操作步骤 背景 生产环境上的主从复制集群,因为一些异常或人为原因,在从库做了一些操作,导致主从同步失败.一般修复起来比较麻烦,通过重做mysql从库的方 ...