2023-01-14 393
/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
docker镜像仓库:
Docker Hub (ubuntu + nginx + php-fpm7.4 环境)
https://hub.docker.com/r/freedomx20/nginx-fpm7.4
以上所述是小编给大家介绍的利用Dockerfile文件部署php项目的全过程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:http://www.77isp.com/post/25748.html
=========================================
http://www.77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2023-01-07
网站技术 2022-11-17
网站技术 2022-11-26
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
数据库技术 2022-02-20
Linux相关 2022-02-27
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态