Macでelectronアプリのexe版をdockerを使ってビルドする
概要
electron+vue+sqliteでmac向けデスクトップアプリを作ったが、それのwin版をmacでビルドしようとしたら色々ハマったのでそのメモ
調査/下準備
こちらの記事によるとwin版をmacでビルドするためにはwineをインストールする必要があるらしい。
しかし、昔macにwineを入れたらぐちゃぐちゃになった思い出があって、できれば環境を汚さずにwineを入れたいので今回はdockerを使うことにした。
docker hubにmisterpaladin/docker-wineというリポジトリがあるが、うまく動かなかったのでnodeリポジトリからwineをインストールするDockerfileを用意することにする。
また、今回はdocker-composeを使う。
(普通にdocker buildしてからコンテナを立ち上げてもできるけど、docker-compose使った方がビルド、マウント、実行を一括にできるため)
electronのバージョンやicoファイルはあらかじめ用意しておく。
手順
-
以下のファイル構成にする
. ├── Dockerfile ├── app ├── build ├── docker-compose.yml ├── icon ├── node_modules ├── package-lock.json ├── package.json └── readme.md
-
Dockerfileに下記を記述
DockerfileFROM node RUN dpkg --add-architecture i386 && \ apt update && \ apt install -y wine && \ apt install -y wine32 && \ npm i -g electron-packager WORKDIR /home CMD [ "electron-packager",".","app-name","--name=app-name","--platform=win32","--arch=x64","--electronVersion=2.0.5","--out=build","--overwrite","--icon=icon/icon.ico"]
CMDを一行で書かなきゃいけないのは見栄えが悪くてツライですね。。
-
docker-compose.ymlに下記を記述
docker-compose.ymlversion: "2" services: electron-packager: build: . volumes: - .:/home
docker-compose up
を実行
これでbuild/app-nameにたくさんのファイルとexeファイルができる。
最後に
electronってクロスプラットフォームのデスクトップアプリが簡単にできるものだと思っていたら色々ハマりポイントがありましたね。。
まあweb+nodeで簡単にmacアプリ作れるってだけでありがたいですが。
これの他にもelectron+vue+sqliteという組み合わせで色々ハマったので、そのうち記事が書ければ
参考
Author And Source
この問題について(Macでelectronアプリのexe版をdockerを使ってビルドする), 我々は、より多くの情報をここで見つけました https://qiita.com/katsuya_U/items/49c225376ba2af655a6e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .