使用docker配置laravel5.5环境
简介
简述一下我用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环境的更多相关文章
- Mac上通过docker配置PHP开发环境
这篇文章介绍的内容是关于Mac上通过docker配置PHP开发环境,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 更多PHP相关知识请关注我的专栏PHPzhuanlan.zhihu. ...
- Docker教程:使用docker配置python开发环境
http://blog.csdn.net/pipisorry/article/details/50808034 Docker的安装和配置 [Docker教程:docker的安装] [Docker教程: ...
- 用 Docker 快速配置前端开发环境
来源于:http://dockone.io/article/1714 今天是你入职第一天. 你起了个大早,洗漱干净带着材料去入职. 签了合同,领了机器,坐到工位,泡一杯袋装红茶,按下开机键,输入密码, ...
- 安装docker及配置Android开发环境
安装docker 官方原来的安装docker的脚本https://get.docker.com/已经过时,现在使用的是https://get.docker.com/,命令如下: curl -s htt ...
- 怎么使用Docker搭建PHP开发环境呢?
在Docker流行之前,要搭建开发环境通常有两种选择:一种是使用wamp.xampp.mamp等集成开发环境安装包,另外一种就是使用普通虚拟机来安装linux服务器,然后通过下载一键安装包(如:lnm ...
- Docker集群实验环境布署--swarm【1 架构说明】
在读完<Docker技术入门与实践>这本书后,基本上已对Docker了有一些入门的理解,以及我们为什么要使用Docker 答:我们发现在实际工作中,通过openstack一旦把一个VM创建 ...
- 如何用docker安装laravel开发环境
如何用docker安装laravel开发环境 看laravel框架的官方文档安装部分时,发现需要安装特别多软件,估计还有许多复杂的配置,官方推荐使用Laravel Homestead虚拟机进行安装,但 ...
- selenium结合docker构建分布式测试环境
selenium是目前web和app自动化测试的主要框架.对于web自动化测试而言,由于selenium2.0以后socker服务器由本地浏览器自己启动且直接通过浏览器原生API操作页面,故越来越多的 ...
- Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现
前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...
随机推荐
- Linux爱情故事之如何以不一样的姿势(ssh)进入她的心
文章目录 1.ssh是谁,为什么要进入她的心 2.如何正确的扒拉ssh 2.1.ssh的常用参数 2.2.您配钥匙吗?(ssh生成公钥或者秘钥) 2.3.我要单向畅通无阻的进入你的心(ssh-copy ...
- 《从零开始, 开发一个 Web Office 套件》系列博客目录
这是一个系列博客, 最终目的是要做一个基于HTML Canvas 的, 类似于微软 Office 的 Web Office 套件, 包括: 文档, 表格, 幻灯片... 等等. 对应的Github r ...
- 从命令模式的维度理解Spring 之Application Event
Spring的事件(Application Event)为Bean与Bean之间的信息通讯提供了支持.当一个Bean处理完一个任务之后,希望另一Bean指定并能做相应的处理,这时我们就需要让另外一个B ...
- 封装及其作用Java
封装 该露的露,该藏的藏 我们程序设计要求"高内聚,低耦合".高内聚就是类的内部数据操作细节自己完成,不允许外部干涉:低耦合:仅暴漏少量的方法给外部使用 封装(数据的隐藏): ...
- pagehelper 自循环启动报错
问题原因 问题产生的原因是 ServiceA实现类中引入了ServiceB,而在ServiceB实现类中又引入了ServiceA,导致循环依赖注入. 其实在代码开发过程中应该尽量避免这种操作的出现,即 ...
- [LeetCode]1464. 数组中两元素的最大乘积
给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值. 请你计算并返回该式的最大值. 示例 1: 输入:nums = [3 ...
- [LeetCode]1108. IP 地址无效化
给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本. 所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 ".". 示例 ...
- 用eclipse写jsp报以下错误
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ tag ...
- Centos7 增加swap分区的内存大小
Centos7 增加swap分区的内存大小 对 swap 空间的适当大小实际上取决于您的个人偏好和您的应用程序要求.通常,等于或双倍于系统内存的量是一个很好的选择 添加swap分区使用dd命令创建/h ...
- Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成——部署方案优化
Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成--部署方案优化 之前我们做的方案部署都是只能选择一个微服务部署并只有一台生产服务器,每个微服务只有一个 ...