nativefierをDockerコンテナー化する
nativefierを使いやすくするため、Dockerコンテナー化します。
nativefierとは
WebページをElectronでラップしてデスクトップ・アプリケーション化するアプリです。
jiahaog/nativefier: Wrap any web page natively without even thinking, across Windows, OSX and Linux
なぜDockerコンテナー化するのか?
nativefierはNode.js(npm)を必要としますが、Node.jsが無い環境でも使用したいため、Dockerコンテナー化します。
(Dockerが入っているならNode.jsくらい入っているとは思いますが…)
使い方
ビルドしたイメージをDocker Hubで公開しています。以下のように実行できます。
docker run -v {出力先}:/mnt/dest u6kapps/nativefier {nativefierオプション} /mnt/dest
{出力先}
には、ローカルPCの出力先フォルダを指定します。- マウント先に
/mnt/dest
を指定していますが、nativefier
がここに出力します。
- マウント先に
{nativefierオプション}
には、nativefierに渡すオプションを列挙します。ENTRYPOINT
でnativefier
を起動するため、指定したオプションが渡ります。- nativefierに渡すオプションは、jiahaog/nativefierを確認すること。
例えば、Windows向けのGoogle Calendarアプリを出力する場合は、以下のように実行します。
docker run -v /c/Users/xxx/Downloads:/mnt/dest u6kapps/nativefier -n "Google Calendar" -p win32 --honest "https://calendar.google.com" /mnt/dest
おわりに
作成したソースコードは、次のGitHubリポジトリにあります。
Docker Hubでイメージを公開しています。
Windowsで実行する場合はDocker MachineでDockerホストを構築して、その中でコンテナー実行すると思いますが、共有フォルダに出力しないと消えるので、注意です。
nativefier
がダウンロードしたElectronはコンテナー実行後に消えますので、毎回、ダウンロードされます。