為tinycolinux製作應用包

2022-06-15 21:45:19 字數 2221 閱讀 5535

本文關鍵字:tinycolinux自定義應用包,tinycolinx記憶體執行,mysql重建/tmp/mysql.sock

在前面《發布tinycolinux》中,我們重點描述了將tinycolinux安裝到硬碟的情況,及處理安裝應用到硬碟的情況,這也是大部分情形下的場景,其實,完全可以採取其rootfs放在livecd ram中執行而應用依然安裝到硬碟的方式,這樣更有利於vm container iaas環境建server farm,這樣rootfs是載入到ram中去的。只要重啟,一切對系統的更改將撤消。使用者就不會輕易破壞系統。

啟動,執行。成功進入到tc使用者的cmdline.

當然,雖然這個live rootfs系統啟動起來了,這個rootfs還是有點raw form和不便的。比如:

modprobe也會出錯,因為readonly live rootfs是不能載入原initrd.gz注入的lib/modules的,不過同樣地,我們可以重新打包microcore.gz手動加入這些檔案。

還有一些必要的系統級持久無法完成,比如使用者密碼更改,它儲存在readonly rootfs /etc/shadow中,我們必須這樣來完成:

sudo passwd root

輸入密碼二次

cp /etc/shadow /opt/shadow (做一次備份到硬碟中/opt)

然後修改下/opt/.bootsync.sh,加入以下:

cp /etc/shadow /etc/shadow_old 

cp /opt/shadow /etc/shadow

其實我們完全可以替換busybox中的passwd,改變/etc/shadow路徑到其它外部可持久位置,還比如,vm container子機環境不需要關機,可以去掉busybox中的halt,還比如我們可以編譯加入dropbear支援,畢竟sshd是最基本的發行包支援了。

我們就不定製microcore.cpio包了。太累。

官方提供了很多映象,這些包都很正交。且還有構建原始碼,可往往我們還需要lnmp這樣的組合包,我們可以按《發布tinycolinux》part2中的硬碟安裝應用方法來組合一次性安裝包(當然,這樣它就不正交了但對一台vm container通常情況下僅需承載安裝一次lnmp的情形下來說,非常合理和實用),以下是組合應用邏輯,舉例我們用了lnmp,組合到乙個lnmp.tar.gz中。

作一些更改(這是因為原tcz全是綠色dropin包):

nginx conf/nginx.conf,root index加個index.php,把關於php的三條注釋去除注釋化使其有效,其中script_filename改成 $document_root$fastcgi_script_name;且把最大指令碼記憶體由128m改為64mb

usr/local/etc加個my.cnf,內容如下:

[mysqld]

socket = /tmp/mysql.sock

port = 3306

pid-file = /tmp/hostname.pid

datadir = /usr/local/var/mysql

language = /usr/local/share/mysql/english

user = tc

好了,現在重建資料庫,sudo /usr/local/bin/mysql_install_db,,嘗試啟動mysql: sudo /usr/local/bin/mysqld_safe & ,成功

然後我們cd /mnt/cobd0/my,打包它們sudo tar zcf lnmp.tar.gz *,,,安裝這個大應用測試下:cd到/,然後tar zxvf /mnt/cobd0/my/lnmp.tar.gz,然後在/opt/bootlocal.sh中啟動它們:

sudo nginx;sudo php-cgi -b 127.0.0.1:9000;sudo mysql_safe

成功。這個我本來還要整合memcached (bootlocal中啟動用memcached -d 64m限制最大使用記憶體)和postfix的。postfix適合另外起一台vm container建乙個emailserver的組合包。而不是放到lnmp中。

當然,如果自己要從原始碼構建php等的新版本,而不是直接利用官方包組合,這需要處理好多東西。恩恩

容器化實踐 六 Dockerfile製作與應用

dockerfile是由一系列命令和引數構成的指令碼,這些命令應用於基礎映象並最終建立乙個新的映象。命令作用 from image name tag 定義了使用哪個基礎映象啟動構建流程 maintainer user name 宣告映象的建立者 run command 執行命令,是dockerfil...

用openssl為apache製作ssl證書

步驟1 生成金鑰 命令 openssl genrsa 1024 server.key 說明 這是用128位rsa演算法生成金鑰,得到server.key檔案 步驟2 生成證書請求 命令 openssl req new key server.key server.csr 說明 這是用步驟1的金鑰生成證...

製作python指令碼為exe檔案

pip install pyinstaller 建立名為aaa.py的指令碼檔案 功能列印輸入的文字資訊。while 1 print input data input print input data 在當前路徑下開啟終端,鍵入如下命令 pyinstaller w f c aaa.py 表示一些引數...