07-31
0
Docker搭建 nginx+php+mysql+redis
一.创建 /app/www /app/docker_files
二. /app/www 项目目录
三.docker配置目录
1.nginx 创建目录 /app/www/nginx /app/www/nginx/
Dockerfile
from nginx
COPY ./conf/conf.d/ /etc/nginx/conf.d/
COPY ./conf/certs/ /etc/nginx/certs/
COPY ./conf/nginx.conf /etc/nginx/nginx.conf
2.php 创建目录 /app/docker_files/php
Dockerfile
FROM php:8.0-fpm
ENV WWW_PATH "/www"
RUN mkdir ${WWW_PATH}
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN apt-get clean
RUN pecl install redis-5.3.7 && docker-php-ext-enable redis
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd
RUN apt-get install -y \
zlib1g-dev \
libzip-dev
RUN docker-php-ext-install zip
RUN docker-php-ext-install pdo pdo_mysql
RUN docker-php-ext-install bcmath
RUN apt-get install -y procps
RUN apt-get install -y vim
RUN apt-get install -y supervisor
WORKDIR ${WWW_PATH}
RUN php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" && php composer-setup.php && php -r "unlink('composer-setup.php');"
RUN mv composer.phar /usr/local/bin/composer
RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
3.redis 创建目录/app/docker_files/redis
Dockerfile
FROM redis
COPY ./redis.conf /usr/local/etc/redis/redis.conf
4.mysql 创建目录 /app/docker_files/mysql /app/docker_files/mysql/conf /app/docker_files/mysql/data
Dockerfile
FROM mysql:5.7
COPY conf/ /etc/mysql/conf.d/
COPY data/ /var/lib/mysql/
EXPOSE 3306
5. docker-comose.yml 配置
version: '3' services: web: build: './nginx' image: 'nginx-server:1.0' container_name: 'nginx-server' ports: - "80:80" - "443:443" volumes: - '/app/docker_files/nginx/conf/nginx.conf:/etc/nginx/nginx.conf' - '/app/docker_files/nginx/conf/conf.d:/etc/nginx/conf.d' - '/app/docker_files/nginx/conf/certs:/etc/nginx/certs' - '/app/www:/usr/share/nginx/html' networks: - lnmp php: build: './php' image: 'php-server:1.0' container_name: 'php-server' ports: - "9000:9000" volumes: - "/app/www:/www" networks: - lnmp redis: build: './redis' image: 'redis-server:1.0' container_name: 'redis-server' ports: - "6379:6379" networks: - lnmp db: build: './mysql' image: 'db-server:1.0' container_name: 'db-server' ports: - "3366:3306" volumes: - "/app/docker_files/mysql/conf:/etc/mysql/conf.d" - "/app/docker_files/mysql/data:/var/lib/mysql" restart: always environment: MYSQL_ROOT_PASSWORD: 123456 networks: - lnmp networks: lnmp: driver: bridge