關於 Docker volume create

前言 某次我在看某個服務的安裝文件時,發現了 docker volume create 這個指令。 原本我都是使用 -v 對應到我 host 機器的目錄 ex : -v $(pwd)/nginx-cache:/var/cache/nginx 後來很好奇 docker volume create 的用途還有存放路徑。 於是就小小的研究了一下。 docker volume create 一般的 Linux 在執行 docker volume create … 之後, 可以在 /var/lib/docker/volumes 看到 docker 幫你建立 volume 名稱的資料夾。 docker volume create In Mac 可是當你使用 Mac 執行過 docker volume create … 之後, 並無法在 Mac 電腦中找到 /var/lib/docker/volumes 這個目錄。 在 Mac 電腦 是無法直接訪問 /var/lib/docker/volumes 這個目錄, 必須先 screen 到 docker 目錄下的 tty, 進到 tty 之後就可以在 /var/lib/docker/volums 看到 create 的目錄名稱了。 ...

May 10, 2019

Gitlab-ce 版本升級與容器化

升級目標 gitlab-ce:8.14.4 升級到 gitlab-ce:11.3.4 Omnibus 轉移到 Docker 容器(Dockerized) 步驟流程 一、備份 Omnibus 上的資料 二、準備 docker 環境 三、啟動新環境(使用 gitlab-ce:8.14.4-ce.0 版本的 Image)與還原 四、版本逐步升級 一、備份 Omnibus 上的資料 $ gitlab-rake gitlab:backup:create 二、準備 docker 環境 Install docker, docker-compose 檔案存放的根目錄我設定在 /srv/gitlab,因此先在母體主機建立三個資料夾後續給 docker 掛載。 /srv/gitlab/config /srv/gitlab/logs /srv/gitlab/data 三、啟動新環境(使用 gitlab-ce:8.14.4-ce.0 版本的 Image)與匯入 複製 omnibus 機器下的主機金鑰組到新環境 From omnibus (/etc/ssh/ssh_host_*) copy to /srv/gitlab/config/ 撰寫 docker-compose.yaml 如下 hostname 與 external_url 替換成自己的參數 web: image: 'gitlab/gitlab-ce:8.14.4-ce.0' container_name: gitlab restart: always hostname: 'git.example.com' environment: TZ: Asia/Taipei GITLAB_OMNIBUS_CONFIG: | external_url 'http://git.example.com' # Add any other gitlab.rb configuration here, each on its own line ports: - '22:22' - '80:80' - '443:443' volumes: - '/srv/gitlab/config:/etc/gitlab' - '/srv/gitlab/logs:/var/log/gitlab' - '/srv/gitlab/data:/var/opt/gitlab' 使用上方的docker-compose 啟動 gitlab-ce $ docker-compose up -d ...

November 1, 2018

opensourcepos 安裝

php pos 商用版 開源版本 opensourcepos OpenSource POS其實就是舊版本的源碼釋出,基本上版本落差有點大,合不合用就只能試試才知道了 環境準備: 安裝lamp php require php-gd php-bcmath php-intl php-sockets php-mcrypt php-curl installed and enabled. 下載程式: # cd /var/www # git clone https://github.com/jekkos/opensourcepos.git # mv opensourcepos pos # cd /var/www/pos 看你要使用哪個版本 使用git指令切過去 # git checkout tags/3.0.2 -b b_3.0.2 設置權限: # chown -R apache:apache /var/www/pos 匯入資料:(db資訊依照自己的資訊填入) # mysql pos /var/www/pos/database/database.sql 設定檔: # cd /var/www/pos/application/config # cp database.php.tmpl database.php # vi database.php $db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'db_user'; $db['default']['password'] = 'db_pass'; $db['default']['database'] = 'pos'; apache設定 vi /etc/httpd/conf.d/pos.conf ...

May 15, 2017

pem轉ppk putty 登入

putty不支援openssh, 所以手上有pem檔的話需要做一次轉換 前往下載 puttygen.exe pem 轉 ppk 1.載入pem 2.如果看不到檔案請選all file 3.載入後選擇save private key 4.輸入檔名生成ppk檔 putty設定登入 1.轉換完成的ppk檔放置到你想保存的位置 2.開啟putty (以下為範例照自己的機器與檔案資訊填寫) 3.輸入用戶名稱 4.載入ppk檔 5.記得回來按一下存檔 linux or Cmder登入方式 ssh -i xxx.pem username@192.168.1.1 改port的話 ssh -i pem路徑 用戶名稱@主機位址 -p Port端口

March 21, 2017

php call java 類別

php-java-bridge 介紹 php-java-bridge 載點 Files > Binary package > JavaBridgeTemplate621.war 我下載到的版本是JavaBridgeTemplate621.war 寫一個jar來做測試 # mkdir TestMath # cd TestMath # vi TestMath.java public class TestMath { private Integer num1; private Integer num2; public TestMath() { this.num1 = 0; this.num2 = 0; } public TestMath(Integer n1, Integer n2) { this.num1 = n1; this.num2 = n2; } public void setNum1(Integer n) { this.num1 = n; } public void setNum2(Integer n) { this.num2 = n; } public Integer plus() { return num1 + num2; } public Integer minus() { return num1 - num2; } } # javac TestMath.java ...

December 21, 2016

GitLab 7.14升級8.X

簡介 上次安裝Gitlab大約將近一年前了,Gitlab也更新了很多功能,因此來著手進行一次升級,順便練習一下 recovery,以免意外發生時手忙腳亂. 目前版本:gitlab-ce-7.14.3-ce.1.el7.x86_64 預計更新版本:就更新到最新版吧目前是8.14.4 一開始傻傻的,想要把舊版本的backup檔,直接到8.X版本進行匯入, 很快的它就會告訴你版本不合了, 只好再用別的方式 後來我準備了兩台伺服器, 一台先安裝7.14.3 一台安裝最新版8.14.4 預計先將7.14.3的備份檔匯入第一台伺服器,之後進行升級, 然後因為個人有點龜毛,再用升級好機器備份出8.14.4版的備份檔, 來到全新的新版機器(8.14.4)再進行匯入 流程 舊機器 7.14.3 備份 1. 備份backup檔 在原本的機器上下指令備份gitlab資料 # gitlab-rake gitlab:backup:create 新機器版本 7.14.3 這台機器要先裝好 7.14.3,匯入備份檔,再用 yum 更新到 8.14.4。 1.安裝 我自己都用Omnibus 所以就先把Omnibus(gitlab-ce-7.14.3-ce.1.el7.x86_64)裝起來吧 gitlab 官網有美美的教學,自己來吧 其中有遇到一個問題是gitlab-ctl reconfigure時會停在[supervise_redis_sleep] # sudo /opt/gitlab/embedded/bin/runsvdir-start & # sudo gitlab-ctl reconfigure Ref: Freeze on ruby_block[supervise_redis_sleep] action run 2. 匯入backup檔 我將backup檔copy到新伺服器的備份目錄下,執行recovery時,程序會自動將檔案recovery回去 mv to /var/opt/gitlab/backups/ 3.開始前先停止相關數據服務連線 # gitlab-ctl stop unicorn # gitlab-ctl stop sidekiq ...

December 8, 2016

利用 adjtimex 來修正 linux 時間偏差

前言: 前幾天使用virtualbox安裝了一台CentOS7的虛擬機器,卻發現時間一直偏差,因此特意抓了時間下來做比對,發現大約每分鐘就會差一秒, 使用虛擬機主客時間同步沒什麼效果,再考慮使用ntp來做時間校正,但因為偏差值太大,不希望校正後時間紀錄失真, 最後採用linux本身時間糾偏的方式 主機OS是CentOS7,因為yum無法直接安裝所以找了source code自行安裝(感謝神同事Leo協助突破盲腸) 下載下來後選定一個版本後即可開始安裝 GITHUB - adjtimex ./configure make make install 先了解時間差 adjtimex --compare 或 # adjtimex -c 圖中每一筆紀錄是每10秒的週期,系統有一個對tick和freq的推薦值,可以用這個對系統進行校正. 這邊我的-t校正值是9859 adjtimex --tick 9859 再檢視一次 adjtimex -c 這邊還有約-0.8的偏差,但其實已經相當接近,要修正更精密的差距必須用-f參數 公式 f = 差值 * 100000 * 65536 或 f = error_ppm平均值 * 65536 這裡 = 250 * 65536 = 16384000 這邊我的-f校正值是16384000 adjtimex -f 16384000

November 4, 2016