docker 搭建alpine下nginx1.14/mysql5.7/php多版本开发环境
docker-compose.yml
version: "3.3"
services:
mysql-5.7:
container_name: mysql-5.7
image: mysql:5.7
restart: always
ports:
- "3308:3306"
volumes:
- ./etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf:ro
- ./var/log/mysql:/var/log/mysql:ro
- ./var/lib/mysql:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
environment:
MYSQL_ROOT_PASSWORD: zengshun2021
php-5.6:
container_name: php-5.6
image: php:5.6-fpm-alpine
build: ./dockerfiles/php/5.6-fpm
restart: always
ports:
- "9000:9000"
volumes:
- ./etc/php/5.6:/usr/local/etc/php
- ./var/www:/var/www/html
- /etc/localtime:/etc/localtime:ro
links:
- "mysql-5.7"
php-7.4:
container_name: php-7.4
image: php:7.4-fpm-alpine
build: ./dockerfiles/php/7.4-fpm
restart: always
ports:
- "9001:9000"
volumes:
- ./etc/php/7.4:/usr/local/etc/php
- ./var/www:/var/www/html
- /etc/localtime:/etc/localtime:ro
links:
- "mysql-5.7"
nginx-1.14.0:
container_name: nginx-1.14.0
image: nginx:1.14.0-alpine
restart: always
ports:
- "8088:80"
volumes:
- ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./etc/nginx/conf.d:/etc/nginx/conf.d:ro
- ./etc/nginx/certs:/etc/nginx/certs
- ./etc/nginx/.htpasswd:/etc/nginx/.htpasswd
- ./var/log/nginx:/var/log/nginx
- ./var/www:/usr/share/nginx/html
- /etc/localtime:/etc/localtime:ro
links:
- "php-5.6"
- "php-5.3"
php5.6 Dockerfile
FROM php:5.6-fpm-alpine
#安装php5.6的拓展
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk update\
&& apk add --no-cache libmcrypt-dev freetype-dev libjpeg-turbo-dev git libpng-dev \
# libfreetype6-dev \
# libjpeg62-turbo-dev \
&& docker-php-ext-install mcrypt mysqli pdo pdo_mysql mbstring bcmath zip opcache\
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd
RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.13/community/ --allow-untrusted gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php
php7.4/8.0 Dockerfile
FROM php:7.4-fpm-alpine
# FROM php:8.0-fpm-alpine
#安装php7.4的拓展
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk update \
&& apk add build-base autoconf bzip2-dev libxslt-dev freetype-dev libjpeg-turbo-dev libpng-dev zlib-dev libzip-dev icu-dev \
&& docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ \
&& docker-php-ext-install gd \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-install opcache \
&& docker-php-ext-install bcmath \
&& docker-php-ext-install mysqli \
&& docker-php-ext-install zip \
&& docker-php-ext-configure intl && docker-php-ext-install intl \
#&& pecl install redis-5.3.1 \
#&& docker-php-ext-enable redis \
&& apk del build-base
部署文件夹目录
更多
-
可以添加一些
hosts
到系统里面。hosts文件地址:Linux & Mac 是在
/etc/hosts
, Windows是在C:\Windows\System32\drivers\etc
.127.0.0.1 www.site1.com 127.0.0.1 www.site2.com 127.0.0.1 www.site3.com
-
在浏览器中输入
www.site2.com:8088/phpinfo.php
或者www.site3.com:8088/phpinfo.php
就能看到关于php56和php74的信息了。 -
或者直接通过127.0.0.1和localhost来区分
访问方式:php5.6访问地址:
http://127.0.0.1:8088/phpinfo.php
;php7.4访问地址:http://localhost:8088/phpinfo.php