docker搭建php环境

dockerfile

FROM php:8.1.7-fpm
EXPOSE 22
COPY ./start_ssh.sh /root/start_ssh.sh
RUN apt-get update \
    && apt-get install -y dialog openssh-server ssh vim supervisor\
    && apt-get install -y \
    --no-install-recommends libfreetype6-dev libjpeg62-turbo-dev libpng-dev curl \
    && apt-get install -y zlib1g-dev \
    && apt-get install -y libzip-dev \
    && apt install -y openssl \
    && apt install -y  libssl-dev \
    && rm -r /var/lib/apt/lists/* \
    && docker-php-ext-configure gd \
    && docker-php-ext-install -j$(nproc) gd opcache pdo_mysql gettext sockets \
    && docker-php-ext-install zip \
    && docker-php-ext-install pcntl \
    && pecl install redis \
    && pecl install swoole \
    && pecl install mongodb \
    && docker-php-ext-enable redis swoole mongodb\
    && php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" \
    && php composer-setup.php \
    && mv composer.phar /usr/local/bin/composer \
    && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \
    && composer selfupdate\

docker-compose.yml

version: '3'

services:
  admin-nignx: #后台nginx
    container_name: admin-nginx
    image: nginx:latest
    restart: always
    tty: true
    networks: #网络
      admin:
        ipv4_address: 172.19.0.2
    volumes:
      - \\wsl.localhost\Ubuntu-20.04\docker\nginx\admin\conf\nginx.conf:/etc/nginx/nginx.conf
      - \\wsl.localhost\Ubuntu-20.04\docker\nginx\admin\logs:/var/log/nginx
      - \\wsl.localhost\Ubuntu-20.04\docker\php\www\admin:/var/www/html
      - \\wsl.localhost\Ubuntu-20.04\docker\nginx\admin\conf\conf.d:/etc/nginx/conf.d
    privileged: true
    ports:
      - 8080:80
    user: root
  admin-php: #后台php
    container_name: admin-php
    image: php:myphp #镜像
    restart: always #重启
    tty: true
    networks: #网络
      admin:
        ipv4_address: 172.19.0.3
    volumes: #数据卷
      - \\wsl.localhost\Ubuntu-20.04\docker\php\www\admin:/var/www/html
    ports: #暴漏端口
      - 8081:9000
    privileged: true
    user: root
    #entrypoint: ['service ssh start']
    command: /bin/bash -c " service ssh start && service supervisor start && php-fpm"  #加入开机启动

  api-nignx: #接口nginx
    container_name: api-nginx
    image: nginx:latest
    restart: always
    tty: true
    networks: #网络
      admin:
        ipv4_address: 172.19.0.5
    volumes:
      - \\wsl.localhost\Ubuntu-20.04\docker\nginx\api\conf\nginx.conf:/etc/nginx/nginx.conf
      - \\wsl.localhost\Ubuntu-20.04\docker\nginx\api\logs:/var/log/nginx
      - \\wsl.localhost\Ubuntu-20.04\docker\php\www\sghome_pro:/var/www/html
      - \\wsl.localhost\Ubuntu-20.04\docker\nginx\api\conf\conf.d:/etc/nginx/conf.d
    privileged: true
    ports:
      - 8082:80
    user: root

  api-php: #接口php
    container_name: api-php
    image: php:myphp #镜像
    restart: always #重启
    tty: true
    networks: #网络
      admin:
        ipv4_address: 172.19.0.6
    volumes: #数据卷
      - \\wsl.localhost\Ubuntu-20.04\docker\php\www\sghome_pro:/var/www/html
    ports: #暴漏端口
      - 8083:9000
    privileged: true
    user: root
    command: /bin/bash -c " service ssh start && service supervisor start && php-fpm"  #加入开机启动

  redis: #redis
    container_name: redis5
    image: redis:latest
    restart: always
    tty: true
    networks: #网络
      admin:
        ipv4_address: 172.19.0.7
    volumes: #数据卷
      - \\wsl.localhost\Ubuntu-20.04\docker\redis\redis.conf:/etc/redis/redis.conf
      - \\wsl.localhost\Ubuntu-20.04\docker\redis\data:/data
    privileged: true
    user: root
    ports:
      - 6379:6379
    command: /bin/bash -c " redis-server /etc/redis/redis.conf --appendonly yes " #开机启动命令

  mysql:
    container_name: mysql8 #容器名称
    image: mysql:latest
    restart: always
    privileged: true
    user: root
    tty: true
    environment:
      MYSQL_PASSWORD: root
    networks:
      admin:
        ipv4_address: 172.19.0.8
    volumes:
      - \\wsl.localhost\Ubuntu-20.04\docker\mysql\data:/var/lib/mysql:rw
      - \\wsl.localhost\Ubuntu-20.04\docker\mysql\logs:/var/log/mysql:rw
      - \\wsl.localhost\Ubuntu-20.04\docker\mysql\conf\my.cnf:/etc/mysql/my.cnf:rw
    ports:
      - 3309:3306

networks:
  admin:
    ipam:
      config:
        - subnet: 172.19.0.0/16
          gateway: 172.19.0.1
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2
playmaker
1年前 评论
LXK (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!