shion のアバター画像もくもくログページ一覧ブログ一覧技術メモ一覧ライセンス表記利用規約外部リンクconnpassGitHubSpeaker DeckTwitter[工事中]Shion のもくログバージョン1.2.5

もくもくログ

主にIT 関連のメモをもくもくと綴っていきます

この記事の情報は古い可能性があります
最終更新日:2019/11/27 09:05:25
IonicREPLInDocker の使い方DockerIonic

IonicREPLInDocker は、Docker コンテナ内でIonic コマンドを随時入力できるようにした環境です。
これをうまく使うことで、ローカル環境の整備の手間を少し減らすことができるかと思います。
あくまで開発作業時に使うものなので、くれぐれも本番環境で使わないでください。

この記事では使い方を解説していきます。
イメージそのものの開発に関することはIonicREPLInDocker の開発について をご覧ください。

Quick Start(導入から利用まで)

そのままイメージを使う場合

下記コマンドを実行し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]

利用方法等は前述した"そのままイメージを使う場合" と同様ですので省略します。
注意点は下記となります。

  • docker-compose など複数コンテナを併用するのは難しいです
    → このDocker イメージはコマンド入力を受け付けるようにしているため、それらが無効になるものと相性が悪いです
    → リモートデスクトップ接続を受け入れる設定もしていないので、起動後に接続するのは難しいと思われます
  • "仕様 > Docker イメージの設定" を確認し、注意深く踏襲してください

仕様

Docker イメージの設定

最新の設定はGitHub をご確認ください。

  • 公開しているポート
    • 4200: ng e2e
    • 8100: ionic serve
    • 9876: ng test
    • 35729: liveload
    • 53703: dev logger
  • 実行コマンドは/bin/sh
  • Docker イメージのタグ名はIonic CLI のバージョンに合わせる
  • デフォルトの作業フォルダーは/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 がないため

Tips

Visual Studio Code のタスク

下記を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 のイメージタグ

リンク一覧

作成したDocker イメージ関連

Docker イメージ内に導入したライブラリ

参考資料

一覧に戻る