2020年11月12日木曜日

Debian に H2 データベースをインストールして Web コンソールから SQL を発行する

前提

  • OS: Windows 10 Pro
  • Docker: Docker version 19.03.13, build 4484c46d9d
  • 使用イメージ: debian:buster-slim

Docker コンテナ起動

docker run -it --rm -p "8082:8082" debian:buster-slim

インストール

# 必要なツール群インストール
mkdir -p /usr/share/man/man1
apt-get update
apt-get install -y curl unzip openjdk-11-jdk-headless

# ファイル一式をダウンロードして /opt/h2 へ配置する
curl -l -O https://h2database.com/h2-2019-10-14.zip
unzip h2-2019-10-14.zip
mv h2 /opt/
chmod u+x /opt/h2/bin/h2.sh
rm -rf h2-2019-10-14.zip

# パスを通す
export PATH=$PATH:/opt/h2/bin

データベース作成

データベースファイルは org.h2.tools.Shell の初回接続時に自動生成されるので、とりあえず空の SQL を発行する。

java -cp /opt/h2/bin/h2-1.4.200.jar org.h2.tools.Shell -url jdbc:h2:~/h2db_data -driver org.h2.Driver -user sa -password "" -sql ""

サーバー起動

web コンソールを有効化してサーバーを起動する。

/opt/h2/bin/h2.sh -webAllowOthers

Web コンソールで接続

ここまで来たら、ホストのブラウザで http://localhost:8082 に接続する。

Web コンソールが開くので、各項目に以下の通り入力し、 接続 ボタンを押下。

  • ドライバクラス: org.h2.Driver
  • JDBC URL: jdbc:h2:~/h2db_data
  • ユーザ名: sa
  • パスワード: (空)

h2db_data は、 データベース作成 で作成したデータベース名。

あとはテキストエリアに SQL 入れて実行するだけ。

以上。

参考資料

2020年11月1日日曜日

Coffee Editor のサンプルプロジェクトを動かす

必須環境を構築したら、あとは run.sh が全部よしなにやってくれる。らくちん。

前提

  • OS: Windows 10 Pro
  • docker: Docker version 19.03.8, build afacb8b
  • 使用イメージ: debian:buster-slim

作業用コンテナ起動

docker run -it --rm -v "$(pwd):/work" -v "$HOME/.m2:/root/.m2" --workdir="/work" -p "3000:3000" debian:buster-slim

環境構築

ビルドに必要な環境を構築

apt-get update

# Theia のビルド・実行に必要なものをインストール
mkdir -p /usr/share/man/man1
apt-get install -y openjdk-11-jdk-headless curl git maven python

# nodejs native addon ビルドに必要なものをインストール
apt-get install -y make g++ libsecret-1-dev xvfb libx11-dev libxkbfile-dev libxml2-utils

# nodejs, yarn, node-gyp のインストール
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
nvm install 10
nvm use 10
npm install -g yarn

ビルド・実行

ソースコード取得

cd /work
git clone https://github.com/eclipsesource/coffee-editor.git

ビルド・実行

cd /work/coffee-editor
./run.sh

firefox の起動に失敗するが、しばらく待っていると coffee-editor のフロントエンドが立ち上がる。

以上。

追記

ログをよく見るとエラーが発生しまくっていた。リベンジする。

参考資料

更新履歴

日付 更新内容
2020/11/1 新規作成
2020/11/2 裏でエラーが発生していたことを追記

2020年10月22日木曜日

Eclipse Sirius Web のサンプルプロジェクトを試す

Eclipse Sirius の クラウドベーススタックである Sirius Web, それのサンプルを動かした。

基本的には sirius-web/README.adoc の手順通り。

各コンポーネントの同期がとれていないのか、手順そのままでは動かなかったので、いくつか詰まった点を追記している。

前提

  • OS: Windows 10 Pro
  • Docker: Docker version 19.03.13, build 4484c46d9d
  • 使用イメージ: debian:buster-slim

GitHub Package Registry 向けのパーソナルアクセストークンを生成する

  1. Settings -> Developer settings -> Personal access tokens -> Generate new token
  2. New personal access token で必要事項入力
    • Note : read package registry
    • repo にチェックを入れる
    • read:packages にチェックを入れる
    • Generate token キー押下
  3. 表示されたアクセストークンをメモ

ビルド用コンテナ起動

最終的に、このコンテナで生成した jar ファイルを Windows 上で動かす。(ので、ポート指定は無し)

docker run -it --rm --name sirius-web -v "$(pwd):/work" -v "$HOME/.m2:/root/.m2" --workdir="/work" debian:buster-slim

作業用コンテナ内で環境構築

ビルドに必須な環境を構築

Java11, Maven, curl, git, nodejs, yalc, rollup が必要。

apt-get update
mkdir -p /usr/share/man/man1
apt-get install -y openjdk-11-jdk-headless curl git maven

# nodejs インストール
curl -sL https://deb.nodesource.com/setup_15.x | bash -
apt-get install -y nodejs

# rollup, yalc インストール
npm install -g rollup yalc

# npm 自身のアップグレード
npm install -g npm

ソース取得・ビルド

ObeoNetwork/Flow-Designer

cd /work
git clone https://github.com/ObeoNetwork/Flow-Designer.git
cd Flow-Designer
mvn clean install

ビルド済みのものが以下 issue にぶら下がっているが、それに気付く前にビルドしてしまった。

See: https://github.com/eclipse-sirius/sirius-web/blob/d4955a228200b22d78b9c37e45101efda03b976b/backend/sirius-web-sample-application/pom.xml#L44

eclipse-sirius/sirius-emf-json

# sirius-emf-json の取得・ビルド・インストール
cd /work
git clone https://github.com/eclipse-sirius/sirius-emf-json.git
cd sirius-emf-json
mvn clean install -f releng/org.eclipse.sirius.emfjson.releng/pom.xml

eclipse-sirius/sirius-components

# sirius-components の取得
cd /work
git clone https://github.com/eclipse-sirius/sirius-components.git

# sirius-components のフロントエンドをビルド・ローカルパブリッシュ
cd /work/sirius-components/frontend
npm install
npm run build
yalc publish

# sirius-components のバックエンドをビルド・インストール
cd /work/sirius-components/backend
mvn clean install

eclipse-sirius/sirius-web

GitHub の npm registry へのログイン設定

フロントエンドで GitHub の NPM パッケージレジストリを使用しているのでその設定。

echo '//npm.pkg.github.com/:_authToken=TOKEN' > ~/.npmrc
  • TOKEN: パーソナルアクセストークン

GitHub の Maven registry へのログイン設定

バックエンドで GitHub の Maven パッケージレジストリを使用しているのでその設定。

export USERNAME=mikoto2000
export PASSWORD=TOKEN
  • TOKEN: パーソナルアクセストークン

eclipse-sirius/sirius-web のソース取得・ビルド

cd /work
git clone https://github.com/eclipse-sirius/sirius-web.git

# フロントエンド
cd /work/sirius-web/frontend

# npm registry の obeo/sirius-components を削除して、
# ローカルの eclipse-sirius/sirius-components を追加
# See: https://github.com/eclipse-sirius/sirius-web/issues/1#issuecomment-712639686
sed -i -e 's/    "@obeo\/sirius-components": "0.1.27",//' ./package.json
yalc add @eclipse-sirius/sirius-components

# それにともなって、 import している箇所も修正
sed -i -e 's/obeo\/sirius-components/eclipse-sirius\/sirius-components/' ./src/index.js
sed -i -e 's/obeo\/sirius-components/eclipse-sirius\/sirius-components/' ./src/main/Main.js
npm install
npm run build

# バックエンド
cd /work/sirius-web
mkdir -p backend/sirius-web-frontend/src/main/resources/static
cp -R frontend/build/* backend/sirius-web-frontend/src/main/resources/static
cd /work/sirius-web/backend
mvn -s /work/sirius-web/settings.xml clean package

サンプルアプリケーションの実行

ビルドの時点で必要なものは jar の中に全部入ったから、これ以降は Windows 上での作業。

# sirius web 用の PostgreSQL サーバー起動
# See: https://github.com/eclipse-sirius/sirius-web/blob/master/scripts/restart-siriusweb-postgresql.sh
docker run -p 5433:5432 --rm --name sirius-web-postgres -e POSTGRES_USER=dbuser -e POSTGRES_PASSWORD=dbpwd -e POSTGRES_DB=sirius-web-db -d postgres

# Sirius Web サンプルアプリケーション起動
java -jar sirius-web/backend/sirius-web-sample-application/target/sirius-web-sample-application-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev --spring.datasource.url=jdbc:postgresql://localhost:5433/sirius-web-db --spring.datasource.username=dbuser --spring.datasource.password=dbpwd

http://localhost:8080 へアクセスすると、 Sirius Web の画面が表示される。

参考資料