iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0

昨天已經用PostgreSQL做了範例,今天要輪到PHP當主角了,從DockerHub下載下來最原始的PHP只會有最基本的功能,所以如果要用一些特別的function或是套件時會發生不支援的問題,以往的解決方式會是在該環境下直接下指令安裝,但這樣會因為沒有將下載的套件做記錄等等原因造成很難複製到下一個環境上,假設一個團隊有local、development、release、master等環境,就容易造成環境不統一,程式在development環境下沒問題,但到了master線上環境卻出了問題。

Docker file就可以徹底解決這個問題,將所有環境套件等文件化,再打包成一個專屬於自己的Image,有點像物件導向繼承的概念,建立新環境時只要直接Pull下來即可使用,不用再擔心哪些套件忘記安裝。

先到DockerHub申請一個帳號用來存放自己的Image。

  • 建立一個命名為dockerFile的檔案,填入以下內容
    https://ithelp.ithome.com.tw/upload/images/20210912/20115048VIKdvvyCHF.png
  1. Pull第一層Image
FROM php:7.4.9-fpm
  1. 清空更新列表
RUN rm -r /var/lib/apt/lists/*
  1. 確認apt-get為最新版本
RUN apt-get update -y && apt-get upgrade -y
  1. 將要下載的套件寫好
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
  • 打開terminal到該檔案的位置然後下指令建立屬於自己的Image
docker build -t myphp .
  • 使用指令來查看擁有的Images
docker images
  • 幫自己的Image上一個tag才能上傳至DockerHub
docker tag myphp kurt6783/iron_man
  • 登入自己的Docker帳號
docker login
  • 上傳Image
docker push kurt6783/iron_man
  • 這樣就可以在DockerHub上看到自己上傳的Image了
    https://ithelp.ithome.com.tw/upload/images/20210912/20115048cbCDTDCjRP.png

這樣以後在別的環境需要部屬時只需要直接pull這個Image就可以使用了是不是很方便呢

docker pull kurt6783/iron_man

今天的介紹到此結束,謝謝觀看的各位,請記得按讚分享開啟小鈴鐺,你的支持會讓按讚數+1。


上一篇
Day11 Docker
下一篇
Day13 Docker compose
系列文
每日1%,你會累趴。30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言