Files
seedit/electron/build-docker.sh
2023-12-12 00:14:04 +00:00

63 lines
1.4 KiB
Bash
Executable File

root_path=$(cd `dirname $0` && cd .. && pwd)
cd "$root_path"
# install node_modules
if [[ ! -f node_modules ]]
then
yarn || { echo "Error: failed installing 'node_modules' with 'yarn'" ; exit 1; }
fi
# download ipfs clients
node electron/download-ipfs || { echo "Error: failed script 'node electron/download-ipfs'" ; exit 1; }
dockerfile='
FROM electronuserland/builder:16
# install node_modules
WORKDIR /usr/src/seedit
COPY ./package.json .
COPY ./yarn.lock .
RUN yarn
# build native dependencies like sqlite3
RUN electron-builder install-app-deps
# copy source files
COPY ./bin ./bin
COPY ./electron ./electron
COPY ./src ./src
COPY ./public ./public
# required or yarn build fails
COPY ./.eslintrc.json ./.eslintrc.json
COPY ./.prettierrc ./.prettierrc
# react build
RUN yarn build
'
# build electron-builder docker image
# temporary .dockerignore to save build time
echo $'node_modules\ndist' > .dockerignore
echo "$dockerfile" | sudo docker build \
. \
--tag seedit-electron-builder \
--file -
rm .dockerignore
# build linux binary
sudo docker run \
--name seedit-electron-builder \
--volume "$root_path"/dist:/usr/src/seedit/dist \
--rm \
seedit-electron-builder \
yarn electron:build:linux
# build windows binary
sudo docker run \
--name seedit-electron-builder \
--volume "$root_path"/dist:/usr/src/seedit/dist \
--rm \
seedit-electron-builder \
yarn electron:build:windows