Dockerfile如何部署PHP项目,步骤是什么
Admin 2022-08-02 群英技术资讯 1166 次浏览
今天这篇我们来学习和了解“Dockerfile如何部署PHP项目,步骤是什么”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“Dockerfile如何部署PHP项目,步骤是什么”有一定的帮助。有这方面学习需要的朋友就继续往下看吧!/project_name
|-- /dist #--- 项目编译后输出的目录
|-- /config #--- 配置文件目录
|---|
|---|-- Dockerfile #--- Dockerfile文件
|---|-- nginx.conf #--- nginx配置文件
nginx.conf文件


# 从ubuntu镜像中构建应用 FROM ubuntu:latest # 设置镜像的制作者 MAINTAINER congjiang # 安装nginx + php-fpm7.4 RUN apt-get update && apt-get upgrade && apt-get install -y nginx php7.4-fpm vim # 上一条命令安装nginx和fpm # nginx 默认安装路径 /etc/nginx/ # php-fpm 默认安装路径 /etc/php/fpm/ # nginx配置文件存放目录 /etc/nginx/conf.d/ # nginx默认项目路径 /var/www/html/ # 在上传目录之前,可以先删除旧项目代码 # RUN ["rm", "-rf", "/var/www/project_name/"] # 项目文件上传, 把当前目录下的所有文件上传到/var/www/project_name目录下 COPY ./dist/ /var/www/project_name/ # 把当前项目的nginx.conf配置文件上传到/etc/nginx/conf.d/目录下 COPY ./config/nginx.conf /etc/nginx/conf.d/default.conf # 容器运行时启动应用 # php-fpm7.4 -D : 启动fpm并在后台运行 # nginx -g 'daemon off;' : 启动nginx, 前台执行, 并保持进程常驻, 避免docker容器启动后就自动关闭了 CMD php-fpm7.4 -D && nginx -g 'daemon off;'
# 在项目project_name目录下执行命令 docker build -f config/Dockerfile -t myproject:latest . # 注: 最后的参数表示路径, . : 表示当前目录下 # -f 指定Dockerfile文件所在目录, 如果是相对路径,则从当前目录下查找 # -t 重新指定镜像的名称和标签 <name>:<tag>
# 启动镜像 docker run -itd -p 80:8080 myproject:latest # --name <name> 为启动的容器指定名称,不指定会默认随机一个名称 # -p 访问的端口:镜像内程序的端口 # -d 表示当前容器在后台运行 # -it 指定要启动的镜像名称和标签 <name>:<tag> # -v 本地路径:镜像内的路径 可以将本地路径和容器内的路径映射,可以即时修改文件即时生效,方便测试 # -v 命令可以有多条 # --rm 当前容器退出后将自动删除 # eg: -v E:/logs/:/var/logs/nginx/ 把nginx的日志文件映射到本地
注: nginx + php-fpm 环境搭建到这里已经完成。
启动运行容器后, 打开本地浏览器: http://localhost/ 就可以访问了
# 查看正在运行的容器 docker ps # CONTAINER ID IMAGE ... # 01f82e69c455 myproject ... docker exec -it 01f82e69c455 /bin/bash # -it 需要连接的容器的CONTAINER ID # /bin/bash 当前参数必须的
1. 每次重新构建项目,都会新创建一个镜像文件
2. 如果构建镜像文件时,指定的name和标签与原来的镜像一样,则原来的镜像不会删除,会被更名为<none>:<none> 的镜像文件
# 已找到相关命令解决上面两个问题, 在创建相同名称的新镜像文件时,避免旧镜像残留 # 可以先删除旧镜像文件 docker rmi -f <name>:<tag> # 当前命令可以强制删除指定名称和tag的镜像文件
# 删除运行的容器 docker rm -f <name> # -f 强制删除,如果容器正在运行也会被删除 # -v 删除当前容器挂载的数据卷 # 删除所有没有运行的容器 docker rm $(docker ps -a -q) # 删除本地镜像文件 docker rmi -f <name>:<tag>
1、ubuntu + nginx + php-fpm7.4 版本的运行环境
命令拉取镜像:
docker pull freedomx20/nginx-fpm7.4:1.0
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
php缓存的类型总结及用法 一个网站或者一个应用的标准流程是浏览器向应用服务器发出请求,应用服务器做一些计算和逻辑判断之后再请求数据库,数据库收到请求后在经过计算将数据返回给应用服务器,应用服务器再次计算后把数据返回给浏览器 那么,随着web业务的复杂度和并发量的增加,应用服务器所做的计算和逻辑处理越来越多,而应用服务器的资源是有限的,且数据库每秒接受并处理请求的次数也是有限的.为了在有限的资源提供尽可能多的吞吐量,就是减少计算量,缩短请求流程(减少网络I/O或硬盘I/O).这时,就用到了缓存(Cache) php缓存类型
Swoole4为PHP语言提供了强大的CSP协程编程模式,用户可以通过go函数创建一个协程,以达到并发执行的效果。go()函数用于创建协程;Co::yield()使得当前协程让出CPU;Co::resume()可恢复某个协程执行。
php怎样实现格式化时间?我们有时候会遇到需要格式化时间的需求,那么要怎么操作呢?下面就给大家分享关于php实现格式化时间操作的实例,感兴趣的朋友可以了解看看。
php中n阶乘的实现方法:1、普通递归实现,根据递归的通用公式fact(n) = n * fact(n-1)很容易写出阶乘的计算代码。2、普通循环实现,有些动态规划的味道,但由于中间态变量使用频率低,不需要额外存储空间。
在本篇文章里小编给大家整理了一篇关于php中intval()的实例用法及相关内容,有兴趣的朋友们可以学习参考下。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008