Install OSSLab Wiki from Docker

    版本為 01:42, 27 Dec 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    建立 LAMP

    系統環境:

    • CentOS 5.x
    • PHP 5.1.x
    > mkdir ~/my_docker
    > cd ~/my_docker
    > git clone https://github.com/a-lang/Docker_centos5-lamp_php51.git 
    > cd Docker_centos5-lamp_php51
    > docker build -t alang/centos5-lamp_php51 .

    TIP:

    Dockerfile 在 EXPOSE 的設定,除了 80 port 以外,還有 rsync 873 port,這是非必要。

    Image 建立完成後,執行 docker images 會顯示剛剛新建的 image。

    啟動 image
    > docker run -t -i alang/centos5-lamp_php51
    

    TIPs:

    - 按下 Ctrl+P, Ctrl+Q 可以退出 container 回到 host,但不會關閉 container。

    - 執行 docker attach <container-id> 可以重新進入 container 的 console。

    第一次啟動 image

    設定時區

    container> rm -f /etc/localtime
    container> ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime
    

    輸入 Ctrl+P, Ctrl+Q 退出 container,執行這個指令儲存 image 剛剛的變更

    > docker ps
    > docker commit <container-id> <image-name>
    

    TIP:

    儲存 image 時,建議可以在原有的 image-name 加上 v1。

    建立 Mono + Mindtouch Image

    系統環境:

    • LAMP
    • Mono 2.10.8
    • Mindtouch 10.1.4
    > cd ~/my_docker
    > git clone https://github.com/a-lang/Docker_mindtouch1014.git
    > cd Docker_mindtouch1014
    > docker build -t alang/mindtouch1014 . 

    第一次啟動

    啟動 images

    > docker run -t -i -v /dockerVol/osslab-wiki/host_shared:/host_shared \
    -v /dockerVol/osslab-wiki/var_lib_mysql:/var/lib/mysql \
    alang/mindtouch1014
    

    設定 MySQL root 密碼

    container> mysqladmin -u root password 'your-pass'
    

    輸入 Ctrl+P, Ctrl+Q 退出 container,儲存 image v1

    > docker ps
    > docker commit <container-id> alang/mindtouch1014:v1
    

    停止 container

    > docker ps
    > docker stop <container-id> 
    

    復原舊網站的資料

    備份舊網站的設定檔
    • /etc/dekiwiki/mindtouch.deki.startup.xml
    • /etc/dekiwiki/mindtouch.host.conf
    • wikidb.sql (資料庫備份檔)
    • html.tgz ( /var/www/dekiwiki/ 備份檔)

    將以上檔案複製到 host 的 /dockerVol/osslab-wiki/host_shared 目錄

    啟動 image

    docker run -t -i \
    -p 80:80 \
    -p 873:873 \
    -v /dockerVol/osslab-wiki/host_shared:/host_shared \
    -v /dockerVol/osslab-wiki/var_lib_mysql:/var/lib/mysql \
    -v /dockerVol/osslab-wiki/var_www_dekiwiki:/var/www/dekiwiki/ \
    alang/mindtouch1014:v1
    

    複製設定檔

    container:

    > cp /host_shared/mindtouch.deki.startup.xml /etc/dekiwiki
    > cp /host_shared/mindtouch.host.conf /etc/dekiwiki 
    

    匯入資料庫

    container:

    mysql -u root -p
    
    mysql> create database wikidb;
    mysql> create user 'wikiuser'@'localhost' identified by 'db_pass';
    mysql> grant all privileges on wikidb.* to 'wikiuser'@'localhost';
    mysql> exit
    
    cd /host_shared/
    mysql -u wikiuser -p wikidb < wikidb.sql
    

    TIP:

    要查詢設定檔內所設定的 DB 密碼,執行
    sed -n '/db-password/p' /host_shared/mindtouch.deki.startup.xml

    還原備份的 html.tgz

    container:

    cd /var/www/
    tar xzf /host_shared/html.tgz
    chown -R dekiwiki:apache /var/www/dekiwiki
    

    啟動 Dekiwiki 服務

    container:

    service dekiwiki start
    

    檢查網站是否正常運作,如果有,繼續下述步驟:
    編輯 /opt/startup.sh
    最下方加上這一行

    service dekiwiki start
    

    輸入 Ctrl+P, Ctrl+Q 退出 container

    將目前的 container 存在 v2 版的 image

    host :

    docker ps
    docker commit <container-id> alang/mindtouch1014:v2
    

    image 最後啟動

    docker run -t -i \
    -p 80:80 \
    -p 873:873 \
    -v /dockerVol/osslab-wiki/host_shared:/host_shared \
    -v /dockerVol/osslab-wiki/var_lib_mysql:/var/lib/mysql \
    -v /dockerVol/osslab-wiki/var_www_dekiwiki:/var/www/dekiwiki/ \
    alang/mindtouch1014:v2
    

    最後設定

    如果 Image v2 不再需要作任何修改,可以將 v2 存成最新版

    docker run -t -i \
    -p 80:80 \
    -p 873:873 \
    --name osslab-wiki \
    -v /dockerVol/osslab-wiki/host_shared:/host_shared \
    -v /dockerVol/osslab-wiki/var_lib_mysql:/var/lib/mysql \
    -v /dockerVol/osslab-wiki/var_www_dekiwiki:/var/www/dekiwiki/ \
    alang/mindtouch1014:v2
    

    輸入 Ctrl+P, Ctrl+Q 退出 container

    docker ps
    docker commit <container-id> alang/mindtouch1014 
    

    TIP:

    儲存 image 不加 : <tag> 時,預設是 latest。

    Powered by MindTouch Core