卡夫的Mac 05 - Mac下使用docker-compose
2017-08-23 本文已影响291人
7c03aed0f01f
视频地址
学徒卡夫 - 卡夫的Mac 05 - Mac下使用Docker-composer配置PHP环境
https://www.bilibili.com/video/av13703830/
以后应该用不到之前的镜像与容器,所以这里我清空下
docker stop 容器ID/Name
# 删除所有容器
docker rm `docker ps -a -q`
# 删除所有的镜像
docker rmi $(docker images -q)
安装 Docker
https://www.docker.com/docker-mac
安装 docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
使用LaraDock项目搭建PHP开发环境
LaraDock 官网
http://laradock.io/introduction/
什么是LaraDock
LaraDock 和 Laravel Homestead 类似,只不过运行在 Docker 而非 Vagrant 中。LaraDock 可以让我们在数秒之内轻松在 Docker 中运行 Laravel 应用。
LaraDock 致力于让开发过程变得简单,包含了一个已经预包装好的Docker映像以便为我们提供一流的开发环境而不需要再手动安装PHP、Nginx、MySQL、Redis以及其他运行Laravel应用可能要用到的软件或工具。
- 下载源码
cd ~
git clone https://github.com/Laradock/laradock.git
- 配置项目路径
mkdir -p wwwroot # 创建目录
mkdir -p wwwroot/data # 创建网站目录
mkdir -p wwwroot/public # 创建用于 HTTP服务软件的公共目录
- 修改 .env 配置文件
cd ~/laradock
# 拷贝一份正式的配置文件
cp env-example .env
vi .env
# 修改配置项
APPLICATION=../wwwroot #项目目录
DATA_SAVE_PATH=../wwwroot/data #数据目录,比如mysql
WORKSPACE_INSTALL_NODE=true #node 开启
PHP_FPM_INSTALL_ZIP_ARCHIVE=true #zip 开启
PHP_FPM_INSTALL_OPCACHE=false #opcache 生产环境再打开
- 实例化容器
# 运行nginx、mysql容器、(PHP容器自动运行)
# -d 是不监听,后台运行的意思
docker-compose up -d nginx mysql phpmyadmin
配置一个Laravel项目测试
vi /etc/host
# 加入
127.0.0.1 laravel.cc
# 复制一份Laravel项目
/Users/kafu/wwwroot/laravel
加载依赖
# 进入 workspace 容器(也叫工作空间容器)
docker-compose exec workspace bash
# 更换composer源
composer config -g repo.packagist composer https://packagist.phpcomposer.com
# 进入项目目录
cd laravel/
# composer 更新项目
composer install --no-plugins --no-scripts
添加 laravel项目的 nginx配置文件
# vi ~/laradock/nginx/sites/laravel.cc.conf
server {
listen 80;
listen [::]:80;
server_name laravel.cc;
root /var/www/laravel/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 php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
error_log /var/log/nginx/laravel_error.log;
access_log /var/log/nginx/laravel_access.log;
}
# 退出容器
exit
# 重启 nginx 容器,应用配置
docker-composer restart nginx
# 访问测试域名
注释
# 有些容器 bash进不去 就进sh,比如
docker-compose exec pgadmin sh