もくもくログ
主にIT 関連のメモをもくもくと綴っていきます
IonicREPLInDocker は、Docker コンテナ内でIonic コマンドを随時入力できるようにした環境です。
これをうまく使うことで、ローカル環境の整備の手間を少し減らすことができるかと思います。
あくまで開発作業時に使うものなので、くれぐれも本番環境で使わないでください。
この記事では使い方を解説していきます。
イメージそのものの開発に関することはIonicREPLInDocker の開発について をご覧ください。
下記コマンドを実行しDocker コンテナを起動します。
docker run --rm -it -p 4200:4200 -p 8100:8100 -p 9876:9876 -p 35729:35729 -p 53703:53703 -v [mount path]:/home/worker tshion/ionic-repl:[tag]
上記のパラメータ部分はお好みの設定で書き換えてください。
[mount path]
: ホストOS からDocker コンテナへマウントするディレクトリのパス[tag]
: 利用したいDocker のイメージタグ起動が成功するとコマンドを実行したディレクトリが/home/worker
にマウントされ、Ionic コマンドが使えるようになります。
ただしコマンドには制限事項があるので注意が必要です(詳細は"仕様 > 制限事項" を参照してください)
作業が完了したらexit
コマンドを入力するとDocker コンテナが破棄されます。
FROM tshion/ionic-repl:[tag]
利用方法等は前述した"そのままイメージを使う場合" と同様ですので省略します。
注意点は下記となります。
最新の設定はGitHub をご確認ください。
/bin/sh
/home/worker
基本的にDocker コンテナからホストOS 側のアプリを呼び出せないです。
そのため下記のコマンドには制限があります。
コマンド | 利用可能かどうか | 備考 |
---|---|---|
capacitor add , ionic capacitor add |
△ | android, electron, ios のプロジェクト自体は作成可能 |
capacitor copy , ionic capacitor copy |
◯ | |
capacitor open , ionic capacitor open |
× | Docker イメージ内にAndroid Studio やXcode がないため |
capacitor run , ionic capacitor run |
× | |
capacitor sync , ionic capacitor sync |
△ | ネイティブアプリのコンパイルは出来ないため |
capacitor update , ionic capacitor update |
△ | ネイティブアプリのコンパイルは出来ないため |
ionic build |
◯ | |
ionic config get |
◯ | |
ionic config set |
◯ | |
ionic config unset |
◯ | |
ionic cordova build |
△ | ネイティブアプリのコンパイルは出来ないため |
ionic cordova compile |
× | ネイティブアプリのコンパイルは出来ないため |
ionic cordova emulate |
× | |
ionic cordova platform |
◯ | |
ionic cordova platform add |
△ | android, ios のプロジェクト自体は作成可能 |
ionic cordova platform rm |
△ | コンテナ内のゴミ箱に行くみたいなので使わない方がいいかも |
ionic cordova plugin |
◯ | |
ionic cordova prepare |
◯ | |
ionic cordova requirements |
◯ | |
ionic cordova resources |
◯ | cordova-res 導入済み |
ionic cordova run |
× | native-run 未導入のため |
ionic docs |
× | Docker イメージ内のブラウザをホスト側から覗けないため |
ionic doctor check |
◯ | |
ionic doctor list |
◯ | |
ionic doctor treat |
◯ | |
ionic generate |
◯ | |
ionic help |
◯ | |
ionic info |
◯ | |
ionic integrations enable capacitor |
◯ | |
ionic serve |
◯ | |
ionic start |
◯ | |
ng e2e |
× | Docker イメージ内にChrome がないため |
下記をtasks.json
に定義することで、タスクとして利用することができます。
設定例は開発リポジトリ をご覧ください。
{
"version": "2.0.0",
"tasks": [
{
"label": "Test Run Docker",
"type": "shell",
"command": "docker",
"args": [
"run",
"--rm",
"-it",
"-p",
"4200:4200",
"-p",
"8100:8100",
"-p",
"9876:9876",
"-p",
"35729:35729",
"-p",
"53703:53703",
"-v",
"[mount path]:/home/worker",
"tshion/ionic-repl:[tag]"
]
}
]
}
上記のパラメータ部分はお好みの設定で書き換えてください。
[mount path]
: ホストOS からDocker コンテナへマウントするディレクトリのパス[tag]
: 利用したいDocker のイメージタグ