欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          怎樣利用Dockerfile文件部署PHP項(xiàng)目

          本篇文章主要給大家介紹了關(guān)于利用Dockerfile文件部署PHP項(xiàng)目的相關(guān)知識(shí),環(huán)境部署一直是一個(gè)很大的問題,無論是開發(fā)環(huán)境還是生產(chǎn)環(huán)境,但是Docker將開發(fā)環(huán)境和生產(chǎn)環(huán)境以輕量級(jí)方式打包,提供了一致的環(huán)境,下面一起來看一下,希望對大家有幫助。

          怎樣利用Dockerfile文件部署PHP項(xiàng)目

          (推薦教程:PHP視頻教程)

          一、當(dāng)前項(xiàng)目結(jié)構(gòu)

          /project_name
          |– /dist #— 項(xiàng)目編譯后輸出的目錄
          |– /config #— 配置文件目錄
          |—|
          |—|– Dockerfile #— Dockerfile文件
          |—|– nginx.conf #— nginx配置文件

          nginx.conf文件

          怎樣利用Dockerfile文件部署PHP項(xiàng)目

          怎樣利用Dockerfile文件部署PHP項(xiàng)目

          二、創(chuàng)建Dockerfile文件

          # 從ubuntu鏡像中構(gòu)建應(yīng)用 FROM ubuntu:latest   # 設(shè)置鏡像的制作者 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 默認(rèn)安裝路徑 /etc/nginx/ # php-fpm 默認(rèn)安裝路徑 /etc/php/fpm/ # nginx配置文件存放目錄 /etc/nginx/conf.d/  # nginx默認(rèn)項(xiàng)目路徑 /var/www/html/   # 在上傳目錄之前,可以先刪除舊項(xiàng)目代碼 # RUN ["rm", "-rf", "/var/www/project_name/"]   # 項(xiàng)目文件上傳, 把當(dāng)前目錄下的所有文件上傳到/var/www/project_name目錄下 COPY ./dist/ /var/www/project_name/   # 把當(dāng)前項(xiàng)目的nginx.conf配置文件上傳到/etc/nginx/conf.d/目錄下 COPY ./config/nginx.conf /etc/nginx/conf.d/default.conf   # 容器運(yùn)行時(shí)啟動(dòng)應(yīng)用 # php-fpm7.4 -D : 啟動(dòng)fpm并在后臺(tái)運(yùn)行 # nginx -g 'daemon off;' : 啟動(dòng)nginx, 前臺(tái)執(zhí)行, 并保持進(jìn)程常駐, 避免docker容器啟動(dòng)后就自動(dòng)關(guān)閉了 CMD php-fpm7.4 -D && nginx -g 'daemon off;'

          三、生成鏡像文件

          # 在項(xiàng)目project_name目錄下執(zhí)行命令   docker build -f config/Dockerfile -t myproject:latest .   # 注:  最后的參數(shù)表示路徑,  . : 表示當(dāng)前目錄下 # -f 指定Dockerfile文件所在目錄, 如果是相對路徑,則從當(dāng)前目錄下查找 # -t 重新指定鏡像的名稱和標(biāo)簽  <name>:<tag>

          四、使用鏡像文件,并啟動(dòng)容器

          # 啟動(dòng)鏡像   docker run -itd -p 80:8080 myproject:latest   # --name <name> 為啟動(dòng)的容器指定名稱,不指定會(huì)默認(rèn)隨機(jī)一個(gè)名稱 # -p 訪問的端口:鏡像內(nèi)程序的端口 # -d 表示當(dāng)前容器在后臺(tái)運(yùn)行 # -it 指定要啟動(dòng)的鏡像名稱和標(biāo)簽 <name>:<tag> # -v 本地路徑:鏡像內(nèi)的路徑   可以將本地路徑和容器內(nèi)的路徑映射,可以即時(shí)修改文件即時(shí)生效,方便測試 # -v 命令可以有多條 # --rm 當(dāng)前容器退出后將自動(dòng)刪除 # eg:  -v E:/logs/:/var/logs/nginx/   把nginx的日志文件映射到本地

          注: nginx + php-fpm 環(huán)境搭建到這里已經(jīng)完成。

          啟動(dòng)運(yùn)行容器后, 打開本地瀏覽器: http://localhost/ 就可以訪問了

          五、連接已啟動(dòng)的鏡像容器

          # 查看正在運(yùn)行的容器   docker ps   # CONTAINER ID    IMAGE  ... # 01f82e69c455    myproject  ...   docker exec -it 01f82e69c455 /bin/bash   # -it 需要連接的容器的CONTAINER ID # /bin/bash 當(dāng)前參數(shù)必須的

          六、 構(gòu)建項(xiàng)目出現(xiàn)的問題

          • 每次重新構(gòu)建項(xiàng)目,都會(huì)新創(chuàng)建一個(gè)鏡像文件

          • 如果構(gòu)建鏡像文件時(shí),指定的name和標(biāo)簽與原來的鏡像一樣,則原來的鏡像不會(huì)刪除,會(huì)被更名為<none>:<none> 的鏡像文件

          # 已找到相關(guān)命令解決上面兩個(gè)問題, 在創(chuàng)建相同名稱的新鏡像文件時(shí),避免舊鏡像殘留 # 可以先刪除舊鏡像文件   docker rmi -f <name>:<tag>   # 當(dāng)前命令可以強(qiáng)制刪除指定名稱和tag的鏡像文件

          七、刪除容器、刪除鏡像文件

          # 刪除運(yùn)行的容器 docker rm -f <name> # -f 強(qiáng)制刪除,如果容器正在運(yùn)行也會(huì)被刪除 # -v 刪除當(dāng)前容器掛載的數(shù)據(jù)卷   # 刪除所有沒有運(yùn)行的容器 docker rm $(docker ps -a -q)   # 刪除本地鏡像文件 docker rmi -f <name>:<tag>

          八、鏡像倉庫地址

          1、ubuntu + nginx + php-fpm7.4 版本的運(yùn)行環(huán)境

          命令拉取鏡像:

          docker pull freedomx20/nginx-fpm7.4:1.0

          docker鏡像倉庫:

          Docker Hub (ubuntu + nginx + php-fpm7.4 環(huán)境)

          https://hub.docker.com/r/freedomx20/nginx-fpm7.4

          (推薦教程:PHP視頻教程)

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)