客製、套用 devilbox image

 找到了 devilbox 這個跨足許多版本的 LAMP stack ,它少了一些老程式沒有的 pear package ,雖然之前裝裝老程式已經解決了安裝問題,如果不小心 docker-compose down 就一(打)言(回)難(原)盡(形)了…

工作環境:
    Ubuntu Server 22 LTS
        docker
            devilbox LAMP stack

 要做的事情大致上就是,先把套件裝一裝,然後把裝好套件的這個 image commit,給 commit 之後的 image 命名,之後指名套用新的 image 

Commit, Save, and Restore,套用、儲存、回存指令
# 由於 docker-compose down; docker-compose rm -f 之後所做的變動都會重置
# 以 devilbox 的 php-fpm-5.5 為基礎,進入容器中加裝 PEAR 套件,
# 目標容器 devilbox_php_1
# install PEAR package and commit new docker image
# 把更動過的容器做成新的 image
docker commit -a "yourOrgName.org" -m "php-fpm-5.5-noteOfChange" devilbox_php_1  php-fpm-5.5-pear:5.5pAsTagName

# 備份:把新的 image 存一個備份到 tar 檔案中
docker image save -o images.tar php-fpm-5.5-pear:5.5pAsTagName [image2 ...]

# 回復:從備份的 tar 檔案中建立新的容器
docker image load -i images.tar

 停止 docker:
     docker-compose down; docker-compose rm -f;

 套用新的 image:
    devilbox 不去動 docker-compose.yml 用的是 docker-compose.orverwrite.yml

# docker-compose.overwrite.yml
# 基本上就是把 docker-compose.yml 裏面,你使用的容器的那一段複製下來,把你要改的部份改好留下來,其他的內容都殺掉
---
version: '2.3'

# The following override shows an example for the cockroachdb
services:
  php:
    image: php-fpm-5.5-pear:5.5pAsTagName

測試:  docker-compose up -d

裝的套件還在,程式還能動!



收工!

留言

這個網誌中的熱門文章

使用 Excel 計算2個地點之間的直線距離

LINE 儲存的檔案傳到 email 不方便 很不方便 非常不方便 但是有解的筆記

合併列印標籤漏印