昨天已經用PostgreSQL做了範例,今天要輪到PHP當主角了,從DockerHub下載下來最原始的PHP只會有最基本的功能,所以如果要用一些特別的function或是套件時會發生不支援的問題,以往的解決方式會是在該環境下直接下指令安裝,但這樣會因為沒有將下載的套件做記錄等等原因造成很難複製到下一個環境上,假設一個團隊有local、development、release、master等環境,就容易造成環境不統一,程式在development環境下沒問題,但到了master線上環境卻出了問題。
Docker file就可以徹底解決這個問題,將所有環境套件等文件化,再打包成一個專屬於自己的Image,有點像物件導向繼承的概念,建立新環境時只要直接Pull下來即可使用,不用再擔心哪些套件忘記安裝。
先到DockerHub申請一個帳號用來存放自己的Image。
FROM php:7.4.9-fpm
RUN rm -r /var/lib/apt/lists/*
RUN apt-get update -y && apt-get upgrade -y
RUN apt-get install -y --no-install-recommends \
libzip-dev \
libpq5 \
libpq-dev
RUN docker-php-ext-install -j$(nproc) \
zip \
pgsql \
pdo_pgsql
RUN curl -sS https://getcomposer.org/installer | \
php -- --install-dir=/usr/bin/ --filename=composer
docker build -t myphp .
docker images
docker tag myphp kurt6783/iron_man
docker login
docker push kurt6783/iron_man
這樣以後在別的環境需要部屬時只需要直接pull這個Image就可以使用了是不是很方便呢
docker pull kurt6783/iron_man
今天的介紹到此結束,謝謝觀看的各位,請記得按讚分享開啟小鈴鐺,你的支持會讓按讚數+1。