Day12 Docker File

昨天已经用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。


<<:  [Day10] 学 Reactstrap 就离 React 更近了 ~ Grid 篇‧最终回(应该是?

>>:  # Day3 Virtual Memory Layout on RISC-V Linux

从 IT 技术面细说 Search Console 的 27 组数字 KPI (27.5) :SEO KPI 那个最有价值呢(下)?

强化 导航标记(面包屑):正相关到稍微正相关,全网站都会有的 Schema 强化项目主要是导航标记...

视觉化KBARS(5)-1分k展示

前面把java跟python部分完成後, 接下来要继续写js和html的步骤来完成1分k视觉化。 (...

[重构倒数第07天] - 不用靠後端的 client 端上传图片预览图

前言 该系列是为了让看过Vue官方文件或学过Vue但是却不知道怎麽下手去重构现在有的网站而去规画的系...

[Day3]Rock pi 4「扑街」学到的教训 (°Д°)╯╯︵┴┴

以下是我至少rack pi 4的崩溃的教训┴┴︵╰(°Д°)╯︵┴┴ 官网和论坛仅供参考(例如: 上...

DAY16支持向量机演算法(续五)

昨天介绍完SMO并算出a,b,今天就要来算出w和标记在图上, 依照w的公式,我们可以得到下面程序: ...