基于laradock快速搭建一套 PHP 测试环境。
概念
Laradock
是运行在Docker
上的PHP
开发环境。
快速安装
1、克隆Laradock
git clone https://github.com/Laradock/laradock.git
2、复制一份配置文件
cp env-example .env
修改这项配置,指的是在当前目录的上级的wwwroot目录。
这个目录主要是项目目录,例如: ./wwwroot/laravel,表示laravel项目的路径。
# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../wwwroot/
3、安装启动程序:
docker-compose up -d nginx php-fpm mysql redis
尾部可添加你要启动的程序,像 rabbitmq、mongo 等等,需要的时候追加在尾部就可以启动,首次启动时间有点长;
注意:Laradock5.5
版本之后的MySQL版本是8.0,所以不能直接用root用户连接数据库,需要创建其他用户,再连接数据库。
4、启动workspace
容器
docker-compose up -d workspace
进入workspace
容器的命令:
docker-compose exec workspace bash
5、docker-compose exec nginx nginx-s reload
GitLab
现在运行环境已经搭建完成,那么代码应该怎么存放?其实有多种选择,要根据自己的实际情况出发,如:GitHub、码云、GitLab 等等,此处选择GitLab。
docker \
run -d \
-p 443:443 \
-p 8080:80 \
-p 222:22 \
--name gitlab \
--restart always \
-v /home/gitlab/config:/etc/gitlab \
-v /home/gitlab/logs:/var/log/gitlab \
-v /home/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
# 参数解释:
# -d:让容器后台运行
# -p:暴露端口,把容器的443端口指向到宿主机443端口,宿主机8080->容器80,宿主机222->容器22
# 宿主机端口可以根据自己的情况自己定制
# -name 给你的容器起个名,只要不和现有的重复就可以
# --restart 当容器退出时docker是否重启
# -v 这就是挂载磁盘,把宿主机的目录挂载到容器中,这么做哪怕是容器坏了我的内容也不会丢失。
# 宿主机/home/gitlab/config目录挂载到容器中/etc/gitlab目录,宿主机目录根据自己情况定
# gitlab/gitlab-ce 这个就是要启动的镜像,如果镜像不存在,docker会自动下载最新版
容器启动成功之后会有一段时间来启动 GitLab,看到启动成功立马访问是访问不到的,请稍微就可以,配置文件都在你指定的宿主机目录下可以修改,需要修改的内容如下:
gitlab_rails['gitlab_ssh_host'] = '宿主机IP' # 宿主机的IP地址
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 暴露给宿主机的ssh端口
external_url '域名' # 分配给gitlab的域名,可以用nginx做反向代理到8080端口
Jenkins
实现自动化部署有很多种方式如:webhook、Jenkins、Travis CI 等等,我的选择是 Jenkins,laradock 提供Jenkins 服务。
docker run -d \
--name myjenkins \
-p 8181:8080 \
-p 50000:50000 \
-v /home/jenkins/:/var/jenkins_home \
jenkins/jenkins
#参数解释
# -d:让容器后台运行
# -p:暴露端口,宿主机8181->容器8080,宿主机50000->容器50000
# -v 这就是挂载磁盘了,把宿主机的目录挂载到容器中,这么做哪怕是容器坏了我的内容也不会丢失。
# 宿主机/home/jenkins/目录挂载到容器中/var/jenkins_home目录,宿主机目录根据自己情况定
查看初始化密码呢,有两种方式:
# 第一种方式
docker logs <你的容器名字>
# 这样就可以查看容器输出的内容
# 第二种方式
cat /home/jenkins/secrets/initialAdminPassword
# 这里好的/home/jenkins需要替换成你挂载的目录
jenkins 配置
初始化
附录:
(一)、解决docker-compose 命令不存在、未找到命令错误:
1.安装扩展源
sudo yum -y install epel-release
2.安装python-pip模块
sudo yum install python-pip
3.查看docker-compose版本
docker-compose version
# 提示未找到命令
4.通过以命令进行安装
cd /usr/local/bin/
wget https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-Linux-x86_64
rename docker-compose-Linux-x86_64 docker-compose docker-compose-Linux-x86_64
chmod +x /usr/local/bin/docker-compose
5.再通过docker-compose version命令进行查看