记录一下这几天使用安装项目环境的过程
公司的一个项目要交接给客户,客户提出要求要提供源码,以及源码如何安装使用,并提供一个文档,查看了各种方案后选定了使用Docker来进行安装.简单,几乎可以一键操作了,所以这里就开干.
-
首先确定好需要的都有哪一些环境,其中都有PHP、Nginx、MongoDB、MySQL、Redis、RabbitMQ,
-
安装Docker,我这里使用的是Mac的Docker图形化版本
-
Linux执行
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
进行安装,因为这里还使用到了Docker-compose,那么我们还得安装docker-compose,Mac的图形化是已经带有不需要在额外安装的 -
执行
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
安装docker-compose -
接下来去Docker镜像官网下载对应的镜像.找到对应的镜像拉取命令
PHP: docker pull php:7.4.12-fpm ## php:7.4.12-fpm这里是拉取php的7.4.12-fpm版本,如果只php那么就拉取的是php的默认版本 Nginx: docker pull nginx:1.19 ## 这里用到的是Nginx的1.19版本 MongoDB: docker pull mongo ## 拉取的是最新的默认版本,mongo的latest标签 Redis: docker pull redis:alpine RabbitMQ: docker pull rabbitmq MySQL: docker pull mysql
-
接下来我们创建一个docker-compose执行的文件夹
-
makdir /tools/docker/project
- 在进入到文件夹
cd /tools/docker/project
- 将要运行的项目复制到该目录中
- 将环境的各项配置也复制到该目录中,将配置文件挂载到容器中以供使用
- 再创建docker-compose文件
touch docker-compose.yml
- 接下来再打开文件进行编辑
docker-compose.yml
,
-
-
这边直接是在本机编写后将文件传至服务器.所以直接使用编辑器进行操作.
version: '3'
services:
web:
image: nginx:1.19 # 需要运行的镜像名
container_name: webserver # 容器的名称
working_dir: / # nginx的工作目录
volumes:
- ./kdauto:/Users/mt/tools/kdauto # 将宿主机的项目目录挂载到容器的对应目录
- ./nginx:/etc/nginx # 将配置文件挂载到容器使用
ports:
- "80:80" # 将本机的端口映射到容器
redis:
image: redis:alpine
container_name: Redis-alpine
environment:
- TZ=Asia/Shanghai # 设置redis的时区
volumes:
- ./redis_data:/var/lib/redis # 挂载目录到容器
ports:
- "6379:6379" # 映射端口
php:
image: php:7.4.12-fpm
working_dir: /Users/mt/tools/kdauto # php工作目录
volumes:
- ./php-fpm.d:/usr/local/etc/php-fpm.d # 将配置文件挂载到容器使用
- ./php-fpm.conf:/usr/local/etc/php-fpm.conf # 将配置文件挂载到容器使用
- ./kdauto:/Users/mt/tools/kdauto # 将宿主机的项目目录挂载到容器的对应目录
environment:
- TZ=Asia/Shanghai # 设置时区
- LC_ALL=C.UTF-8 # 设置字符
ports:
- "9000:9000" # 映射端口
cap_add:
- ALL # 权限
container_name: PHP7.4
links:
- mysql # 关联容器名.在PHP的代码中可以直接替代域名
- mongo
- redis
- rabbitmq
mongo:
image: liaojunlong1996/kdauto_mongo:latest
container_name: MongoDB-latest
restart: always
ports:
- "27017:27017"
mysql:
image: liaojunlong1996/kdauto_mysql:latest
container_name: MySql-latest
volumes:
- ./my.conf:/etc/my.conf # 将配置文件挂载到容器使用
- ./data:/var/lib/mysql # 挂载目录
ports:
- "3306:3306" # 映射端口
environment:
- MYSQL_ROOT_PASSWORD=123456 # 设置mysql的root账户密码,不设置mysql会报错导致启动失败
- MYSQL_DATABASE=default_db
- MYSQL_USER=default_user
- MYSQL_PASSWORD=123456
- TZ=Asia/Shanghai # 时区
rabbitmq:
image: rabbitmq:latest
container_name: RabbitMq-latest
restart: always
ports:
- "5762:5762" # 映射端口
配置好上述文件后,并且配置好对应的服务配置文件,在目录中执行docker-compose up
执行后访问127.0.0.1就可以访问了,更多的docker-compose参数可以前往菜鸟教程查看对应的文档.也可以留言解答