本家様 https://github.com/arohou/gP2S
cryo-EM向けの電子実験ノート.
作ったグリッドとかサンプルとかを記録していきます. あと作ったグリッドの保存場所とかも記録していきます.
研究リソースの管理にはいいかもしれません.
実験プロトコルも登録できて、トレースが楽かもしれません.

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

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

dokcer版を作ってみる

dokcer環境の構築はこちらを参照 docker

まずはgitを取得する

[illya@docker ~]$ git clone https://github.com/arohou/gP2S

使用するのは gP2S/docker-compose.yml だけなのですが、、、

構築方法はこの docker-compose.yml ファイルにも書かれているが、

[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 ~]$

っと、「docker swarm init」「docker stack deploy -c docker-compose.yml gp2s_stack」でいいみたい.
どうやらdockerのswarmモードで構築するようで. *(dockerでクラスターを作るモードです)

[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」によると次は「docker stack deploy -c docker-compose.yml gp2s_stack」でいいみたい.
なので

[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は動く.

アクセスする

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

2020y05m12d_093944652.png

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

停止

(稼働の確認)
[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」のパラメータを調整して再度起動するには下記を実行します

[illya@docker ~]$ docker stack deploy -c gP2S/docker-compose.yml gp2s_stack

運用

gP2Sのサイトにも書かれているが、そのまま稼働してデータを書き込んでもマシンを再起動すればそのデータは消えてしまいます。
*具体的には「docker stack rm gp2s_stack」でサービスを停止すれば消えます

永続的にデータを残すには「docker-compose.yml」を調整する必要があります。

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 が勝手に作成されます。

[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」としても、再起動しても削除されないので最低限ここは有効にすべきかと.

日本語入力

既定のままでは無理. エラーが発生します.
mysqlの所で「command」行を追加すれば回避できます. *TZ環境変数はおまけ

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

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2020-07-22 (水) 18:29:08 (22d)