基于Docker统一PHP开发环境

本文介绍了如何借助Docker解决团队开发中PHP版本不一致的问题,建立与生产环境一致的开发环境。通过构建包含PHP、Nginx和sshd的Docker镜像,实现代码在容器中运行,开发人员通过ssh登陆容器进行远程开发。同时,文章还展示了如何配置Nginx代理以支持前端和后端服务,并提供了PHPstorm远程开发的设置示例。
摘要由CSDN通过智能技术生成

基于Docker统一PHP开发环境

背景

  • 团队内每个开发人员PHP版本不一致
  • 本地开发环境与生产环境不一致,环境不一致易导致生产问题
  • 每次新人过来安装PHP环境耗时比较长且不可控

目标

  • 所有开发人员环境保持一致
  • 开发环境与生产环境保持一致
  • 能快速安装轻量级的开发环境

思路

  • 将标准PHP环境打包静docker镜像中,所有开发成员代码运行在容器里面,本地不需要安装开发环境(除IDE工具外)
  • 容器里面提供sshd服务,使开发者能够通过ssh登陆并传输文件(类似轻量级虚拟机,在容器启动后利用sftp远程同步文件比较有用)

构造环境镜像

  • 版本
    linux:alpine3.13
    PHP: 7.4

  • 准备文件(在后面国建镜像有用)

nginx主配置文件:nginx.conf

user                nginx;
worker_processes    auto;
error_log           /var/log/nginx/error.log notice;
pid                 /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    sendfile            on;
    keepalive_timeout   65;
    gzip                on;
    #tcp_nopush         on;
    log_format          main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    access_log          /var/log/nginx/access.log  main; 

    include /etc/nginx/conf.d/*.conf;
}

镜像入口文件(用于启动镜像服务): entrypoint.sh

#!/bin/sh

/usr/sbin/sshd -D &
nginx &
php-fpm
  • 镜像Dockerfile
    在有了上面两个文件后,我们就可以开始构建我们的环境镜像了
# 采用基于alpine的php-fpm镜像(alpine为一个轻量级的linux镜像)
FROM amd64/php:7.4-fpm-alpine3.13

# 复制PHP配置文件
RUN cp "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"

# 由于仓库镜像网络问题,换成阿里云资源
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

# 安装php扩展(可以根据自己的需要安装所需PHP扩展)
# install-php-extensions使用文档:
# https://github.com/mlocati/docker-php-extension-installer
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN chmod +x
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值