简单的用docker对thinkphp应用进行容器化部署
(方式一)
(一) 创建文件
- 创建一个dockerfile文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21FROM php:7.4-fpm
WORKDIR /var/www/html
RUN apt-get update && apt-get install -y \
libzip-dev \
zip && \
docker-php-ext-install \
zip && pecl install \
redis && docker-php-ext-enable \
redis && docker-php-ext-configure pdo_mysql \
&& docker-php-ext-install pdo_mysql
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
&& php composer-setup.php --install-dir=/usr/local/bin --filename=composer \
&& php -r "unlink('composer-setup.php');"
EXPOSE 8000
CMD [ "php", "think", "run", "--port=8000"]
- 创建一个
docker-compose.yml
文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17version: '1' #版本号
services:
web:
image: php7.4-application # 这是自定义的镜像名
extra_hosts:
- "host.docker.internal:host-gateway" #用于解决无法访问Docker内端口号问题
ports:
- "8001:8000" # Docker容器端口
environment:
- TZ=Asia/Shanghai
build:
context: ./.
dockerfile: dockerfile
cache_from:
- php7.4-application:latest # 这是自定义的镜像缓存,用于docker build时不会重新下载扩展
volumes:
- .:/var/www/html # 文件映射,即代码共享
- 创建一个dockerfile文件
(二) 运行
(方式二) 通过一条命令运行
1
docker run --name php7.4-application -p 8001:80 -v 项目路径:/var/www/html -d drupalci/php-7.4-apache:dev