Docker安装PHP项目运行环境

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

公司的一个项目要交接给客户,客户提出要求要提供源码,以及源码如何安装使用,并提供一个文档,查看了各种方案后选定了使用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
    
  6. 接下来我们创建一个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,
  7. 这边直接是在本机编写后将文件传至服务器.所以直接使用编辑器进行操作.

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参数可以前往菜鸟教程查看对应的文档.也可以留言解答

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值