#author("2020-07-22T09:28:43+00:00","default:sysosa","sysosa")
本家様 [[https://github.com/arohou/gP2S]]
#author("2020-07-22T09:29:08+00:00","default:sysosa","sysosa")
本家様 [[https://github.com/arohou/gP2S>+https://github.com/arohou/gP2S]]
cryo-EM向けの電子実験ノート.
作ったグリッドとかサンプルとかを記録していきます. あと作ったグリッドの保存場所とかも記録していきます.
研究リソースの管理にはいいかもしれません.
実験プロトコルも登録できて、トレースが楽かもしれません.



アプリとしてもdockerでも運用できるみたい.
フロントエンドはVue.jsで、バックエンドは SPRING によるjavaサーブレットかな?

ユーザアカウント管理[[gP2S/account]]
試しにデータを入力してみた[[gP2S/sample]]

***dokcer版を作ってみる [#bfccf922]
dokcer環境の構築はこちらを参照 [[docker]]

まずはgitを取得する
#code(nonumber){{
[illya@docker ~]$ git clone https://github.com/arohou/gP2S
}}
使用するのは gP2S/docker-compose.yml だけなのですが、、、

構築方法はこの docker-compose.yml ファイルにも書かれているが、
#code(nonumber){{
[illya@docker ~]$ head -n 10 gP2S/docker-compose.yml
# Start.
#  docker swarm init
#  docker stack deploy -c docker-compose.yml gp2s_stack
#  docker service ls
#
# Stop and remove services along with database volumes.
#  docker stack rm gp2s_stack
#  docker swarm leave --force
#
version: "3"
[illya@docker ~]$
}}
っと、「&color(magenta){docker swarm init};」「&color(magenta){docker stack deploy -c docker-compose.yml gp2s_stack};」でいいみたい.
どうやらdockerのswarmモードで構築するようで. &color(red){*};&size(10){(dockerでクラスターを作るモードです)};


#code(nonumber){{
[illya@docker ~]$  docker swarm init
Swarm initialized: current node (略) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3wplhs8(略) 192.168.0.96:2377             <--- workerになる際に使用するコマンド

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

[illya@docker ~]$
}}
これ以降「docker swarm join ...」とか実行するのかなと思うのだが、「docker-compose.yml」によると次は「&color(magenta){docker stack deploy -c docker-compose.yml gp2s_stack};」でいいみたい.
なので
#code(nonumber){{
[illya@docker ~]$ docker stack deploy -c gP2S/docker-compose.yml gp2s_stack
Ignoring deprecated options:

container_name: Setting the container name is not supported.

Creating network gp2s_stack_gp2snet
Creating service gp2s_stack_apacheds
Creating service gp2s_stack_gp2s-service
Creating service gp2s_stack_mysql
Creating service gp2s_stack_mongodb
[illya@docker ~]$

(確認)
[illya@docker ~]$ docker service ls
ID                  NAME                      MODE                REPLICAS            IMAGE                           PORTS
z7zvk3uufg8q        gp2s_stack_apacheds       replicated          1/1                 openmicroscopy/apacheds:0.7.0   *:10389->10389/tcp
iklprg83ukck        gp2s_stack_gp2s-service   replicated          1/1                 arohou/gp2s:latest              *:8080->8080/tcp
x61uxqjru2tq        gp2s_stack_mongodb        replicated          1/1                 mongo:4.0.6                     *:27017->27017/tcp
n75nuv70by9s        gp2s_stack_mysql          replicated          1/1                 mysql:5.7                       *:3306->3306/tcp

[illya@docker ~]$
}}

これでgP2Sは動く.

***アクセスする [#yefcfc30]
gP2Sはwebアプリ. dockerを動かした計算機の 8080 にブラウザでアクセスします
すると下記のような画面が表示される.

&ref(2020y05m12d_093944652.png,nolink);

初期アカウントは「admin」初期パスワードは「secret」です.
ログインするとこんな感じ
&ref(2020y05m12d_094315492.png,nolink);

***停止 [#sf0a2986]
#code(nonumber){{
(稼働の確認)
[illya@docker ~]$ docker service ls
ID                  NAME                      MODE                REPLICAS            IMAGE                           PORTS
yezgox9iw0nh        gp2s_stack_apacheds       replicated          1/1                 openmicroscopy/apacheds:0.7.0   *:10389->10389/tcp
p1hzkz4batr6        gp2s_stack_gp2s-service   replicated          1/1                 arohou/gp2s:latest              *:8080->8080/tcp
j1dvgx3e9cw7        gp2s_stack_mongodb        replicated          1/1                 mongo:4.0.6                     *:27017->27017/tcp
dy84hj47yu0t        gp2s_stack_mysql          replicated          1/1                 mysql:5.7                       *:3306->3306/tcp

(停止)
[illya@docker ~]$ docker stack rm gp2s_stack
}}
これでサービスが停止します。
この後、「docker-compose.yml」のパラメータを調整して再度起動するには下記を実行します
#code(nonumber){{
[illya@docker ~]$ docker stack deploy -c gP2S/docker-compose.yml gp2s_stack
}}

***運用 [#p4c70785]
gP2Sのサイトにも書かれているが、そのまま稼働してデータを書き込んでもマシンを再起動すればそのデータは消えてしまいます。
&color(red){*};具体的には「docker stack rm gp2s_stack」でサービスを停止すれば消えます

永続的にデータを残すには「docker-compose.yml」を調整する必要があります。
#code(diff,nonumber){{
diff --git a/docker-compose.yml b/docker-compose.yml
index 6fb19fd..d4fd2cd 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -22,8 +22,8 @@ services:
     networks:
       - gp2snet
     #Uncomment below two lines to have mysql data persisent
-    #volumes:
-    #  - mysql_volume:/var/lib/mysql
+    volumes:
+      - mysql_volume:/var/lib/mysql
   mongodb:
     container_name: gp2s_mongodb
     image: mongo:4.0.6
@@ -35,8 +35,8 @@ services:
     networks:
       - gp2snet
     #Uncomment below two lines to have mysql data persisent
-    #volumes:
-    #  -  mongo_volume:/data/db
+    volumes:
+      -  mongo_volume:/data/db
   apacheds:
     container_name: gp2s_apacheds
     image: openmicroscopy/apacheds:0.7.0
@@ -74,6 +74,6 @@ networks:
   gp2snet:

 #Uncomment below lines to have mysql and mongodb data persisent
-#volumes:
-  #mongo_volume:
-  #mysql_volume:
+volumes:
+  mongo_volume:
+  mysql_volume:
}}
これで「docker stack deploy -c gP2S/docker-compose.yml gp2s_stack」と再起動させると volume が勝手に作成されます。
#code(nonumber){{
[illya@docker ~]$ docker volume ls
DRIVER              VOLUME NAME
local               4fe641b83e791eaeb3d3f1387c3cd6055595ccdc438de417b61542e9f9c1002b
local               ab450e1256ec03f2daf69a6f873bf18795fa0ab20980c20419afd9d7c256f9c8
local               cbf7052d592bc0a393efd25ae8a1af492264dab7a870e3141e666ffe3a786a8d
local               gp2s_stack_mongo_volume                                             <--- これと
local               gp2s_stack_mysql_volume                                             <--- これ
[illya@docker ~]$
}}
これらは「docker stack rm gp2s_stack」としても、再起動しても削除されないので最低限ここは有効にすべきかと.

***日本語入力 [#w44ecfb8]
既定のままでは無理. エラーが発生します.
mysqlの所で「command」行を追加すれば回避できます. &color(red){*};&size(10){TZ環境変数はおまけ};
#code(diff,nonumber){{
diff --git a/docker-compose.yml b/docker-compose.yml
index 6fb19fd..865587b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -12,6 +12,7 @@ services:
   mysql:
     container_name: gp2s_mysql
     image: mysql:5.7
+    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
     ports:
       - 3306:3306
     environment:
@@ -19,6 +20,7 @@ services:
       MYSQL_USER: gp2s_user
       MYSQL_PASSWORD: password
       MYSQL_DATABASE: gp2sdb
+      TZ: "Asia/Tokyo"
     networks:
       - gp2snet
     #Uncomment below two lines to have mysql data persisent
}}
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS