masterlab是什么?
masterlab基于事项驱动和敏捷开发的项目管理工具,参考了Jira和Gitlab优秀特性发展而来。适用于互联网团队进行高效协作和敏捷开发,交付极致卓越的产品。
- 基于事项驱动,功能全面 —— 跟踪bug,新功能,任务,优化改进等,提高团队协作效率。
- 开源,免费 —— 基于开源技术,回报社区。最新技术栈 使用 PHP7/Go/React/Vue/AntDesign 等前沿技术开发。
- 敏捷开发 —— 将先进理论融入全套流程,为你提供最优秀的敏捷开发实践,将团队协作提升至全新的标准。
- 简单易用,二次开发 —— 注重用户交互,扁平化风格,使用bootsrap和gitlab设计规范。
如何使用这个镜像
dockerhub地址:https://hub.docker.com/r/gopeak/masterlab
github地址:https://github.com/gopeak/masterlab-docker
此镜像被设计用于微服务环境。由hub.docker.com自动构建, 有两种版本可供选择apache版本和fpm版本以及异步事件服务器socket版本。
-
apache版本包括一个apache web服务器,为了让你的部署更灵活,没有搭载mysql和redis。它的设计是易于使用,一条命令就能运行起来。gopeak/masterlab:last就是此版本。
-
fpm版本是基于php-fpm的镜像,运行了一个fastcgi进程,为您的Masterlab页面提供服务。要使用此镜像,必须与其他支持fastcgi端口的web服务器相结合 ,如Nginx、Caddy等。
-
socket版本是masterlab架构中的异步服务组件,涉及到邮件推送等异步服务,需要与masterlab同时部署。
使用apache镜像
- 启动mysql容器
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 -v /your-mysql-path:/var/lib/mysql mysql:5.7 --sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION --innodb_use_native_aio=0
- 启动redis容器
docker run -d --name redis -v /your-redis-path:/data redis redis-server --appendonly yes
- 启动masterlab:socket容器
docker run -d --name mlsocket --link mysql -e MYSQL_HOST=mysql -e MYSQL_PORT=3306 -e MYSQL_DB_NAME=masterlab -e MYSQL_USER=root -e MYSQL_PASSWORD=password gopeak/masterlab:socket
masterlab:socket的环境变量默认值
APP_PORT 9002
MYSQL_HOST mysql
MYSQL_PORT 3306
MYSQL_DB_NAME masterlab
MYSQL_USER root
MYSQL_PASSWORD 123456
- 启动masterlab:apache容器
docker run -d -it --name masterlab --link mysql --link redis --link mlsocket -p 8888:80 -v /your-masterlab-path:/var/www/html gopeak/masterlab
masterlab:apache的环境变量
MASTERLAB_DOMAIN
- 访问以下地址进行安装
http://ip:8888/install
使用fpm镜像
要使用fpm镜像,您需要一个额外的web服务器,它可以代理http请求到容器的fpm端口。对于fpm连接,此容器公开端口9000。在大多数情况下,您可能希望使用另一个容器或主机作为代理。如果您使用您的主机,您可以直接在端口9000上找到您的masterlab容器的地址。如果您使用另一个容器,请确保将它们添加到相同的docker网络(通过docker run --network …或者docker-compose文件)。
基础使用
docker run -d --name masterlab gopeak/masterlab:fpm
由于fastCGI进程无法提供静态文件(css、image、js),Web服务器需要访问这些文件。这可以通过volumes-from选项来实现。您可以在《使用docker-compose进行部署》部分找到更多信息。
启动全部运行环境(nginx+masterlab+mysql+redis)
- 启动mysql容器
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 -v /your-mysql-path:/var/lib/mysql mysql:5.7 --sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION --innodb_use_native_aio=0
- 启动redis容器
docker run -d --name redis -v /your-redis-path:/data redis redis-server --appendonly yes
- 启动masterlab:socket容器
docker run -d --name mlsocket --link mysql -e MYSQL_HOST=mysql -e MYSQL_PORT=3306 -e MYSQL_DB_NAME=masterlab -e MYSQL_USER=root -e MYSQL_PASSWORD=password gopeak/masterlab:socket
masterlab:socket的环境变量默认值
APP_PORT 9002
MYSQL_HOST mysql
MYSQL_PORT 3306
MYSQL_DB_NAME masterlab
MYSQL_USER root
MYSQL_PASSWORD 123456
- 启动masterlab:fpm容器
docker run -d --name masterlab --link mysql --link redis --link mlsocket -v /your-masterlab-path:/var/www/html gopeak/masterlab:fpm
- 启动nginx容器
关于nginx配置的示例, 请自行构建mynginx的镜像(docker build -t mynginx .),在生产环境下需要按需扩展nginx.conf的内容。
docker run -d --name nginx --link masterlab -p 8888:80 --volumes-from masterlab mynginx
- 访问以下地址进行安装流程
http://ip:8888/install
使用docker-compose进行部署
获得功能齐全的设置的最简单方法是使用docker-compose文件。 但有太多不同的可能性来设置您的运行环境方案,所以这里只是给出一些示例。
基于masterlab:apache
version: '2'
services:
mysql:
image: mysql:5.7
container_name: mysql
ports:
- 3306:3306
command: --sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION --innodb_use_native_aio=0
restart: always
volumes:
- /your-mysql-path:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=123456
redis:
image: redis
container_name: redis
command: redis-server --appendonly yes
restart: always
volumes:
- /your-redis-path:/data
mlsocket:
image: gopeak/masterlab:socket
container_name: mlsocket
restart: always
links:
- mysql
environment:
- APP_PORT=9002
- MYSQL_HOST=mysql
- MYSQL_PORT=3306
- MYSQL_DB_NAME=masterlab
- MYSQL_USER=root
- MYSQL_PASSWORD=123456
masterlab:
image: gopeak/masterlab
container_name: masterlab
ports:
- 8888:80
links:
- mysql
- redis
- mlsocket
volumes:
- /your-masterlab-path:/var/www/html
restart: always
运行 docker-compose up -d, 访问 http://ip:8888/install 进行安装流程.
基于masterlab:fpm
version: '2'
services:
mysql:
image: mysql:5.7
container_name: mysql
ports:
- 3306:3306
command: --sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION --innodb_use_native_aio=0
restart: always
volumes:
- /your-mysql-path:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=123456
redis:
image: redis
container_name: redis
command: redis-server --appendonly yes
restart: always
volumes:
- /your-redis-path:/data
mlsocket:
image: gopeak/masterlab:socket
container_name: mlsocket
restart: always
links:
- mysql
environment:
- APP_PORT=9002
- MYSQL_HOST=mysql
- MYSQL_PORT=3306
- MYSQL_DB_NAME=masterlab
- MYSQL_USER=root
- MYSQL_PASSWORD=123456
masterlab:
image: gopeak/masterlab:fpm
container_name: masterlab
links:
- mysql
- redis
- mlsocket
volumes:
- /your-masterlab-path:/var/www/html
restart: always
web:
image: mynginx
container_name: nginx
ports:
- 8888:80
links:
- masterlab
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- masterlab
restart: always
运行 docker-compose up -d, 访问 http://ip:8888/install 进行安装流程.