记录一下这几天使用安装项目环境的过程

公司的一个项目要交接给客户,客户提出要求要提供源码,以及源码如何安装使用,并提供一个文档,查看了各种方案后选定了使用Docker来进行安装.简单,几乎可以一键操作了,所以这里就开干.

  1. 首先确定好需要的都有哪一些环境,其中都有PHP、Nginx、MongoDB、MySQL、Redis、RabbitMQ,
  2. 安装Docker,我这里使用的是Mac的Docker图形化版本
  3. Linux执行curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun进行安装,因为这里还使用到了Docker-compose,那么我们还得安装docker-compose,Mac的图形化是已经带有不需要在额外安装的
  4. 执行$ 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
  5. 接下来去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
  1. 接下来我们创建一个docker-compose执行的文件夹
  1. makdir /tools/docker/project
  2. 在进入到文件夹cd /tools/docker/project
  3. 将要运行的项目复制到该目录中
  4. 将环境的各项配置也复制到该目录中,将配置文件挂载到容器中以供使用
  5. 再创建docker-compose文件touch docker-compose.yml
  6. 接下来再打开文件进行编辑docker-compose.yml,
  1. 这边直接是在本机编写后将文件传至服务器.所以直接使用编辑器进行操作.
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参数可以前往菜鸟教程查看对应的文档.也可以留言解答