From 0f138e87ca9fa58b3dbe690a5b59c3e6ebc805d8 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Tue, 12 Apr 2022 14:04:30 +0200 Subject: [PATCH] Bundle faucet --- packages/faucet/Dockerfile | 11 +++++------ packages/faucet/bin/cosmos-faucet-dist | 6 ++++++ packages/faucet/package.json | 3 ++- packages/faucet/webpack.node.config.js | 21 +++++++++++++++++++++ 4 files changed, 34 insertions(+), 7 deletions(-) create mode 100755 packages/faucet/bin/cosmos-faucet-dist create mode 100644 packages/faucet/webpack.node.config.js diff --git a/packages/faucet/Dockerfile b/packages/faucet/Dockerfile index 6f6291a793..f4585d78bc 100644 --- a/packages/faucet/Dockerfile +++ b/packages/faucet/Dockerfile @@ -13,16 +13,15 @@ FROM node:14-alpine as build-env ADD . /app WORKDIR /app -RUN apk add --update --no-cache alpine-sdk linux-headers build-base gcc libusb-dev python3 py3-pip eudev-dev \ - && ln -sf python3 /usr/bin/python -# Do we really need to update those? -RUN pip3 install --no-cache --upgrade pip setuptools +RUN apk add --update --no-cache alpine-sdk linux-headers build-base gcc libusb-dev python3 py3-pip eudev-dev +RUN ln -sf python3 /usr/bin/python RUN yarn install && yarn run build +RUN (cd packages/faucet && SKIP_BUILD=1 yarn pack-node) FROM node:14-alpine -COPY --from=build-env /app /app +COPY --from=build-env /app/packages/faucet /app/packages/faucet WORKDIR /app EXPOSE 8000 -ENTRYPOINT ["yarn", "node", "/app/packages/faucet/bin/cosmos-faucet"] +ENTRYPOINT ["/app/packages/faucet/bin/cosmos-faucet-dist"] diff --git a/packages/faucet/bin/cosmos-faucet-dist b/packages/faucet/bin/cosmos-faucet-dist new file mode 100755 index 0000000000..6ec8dca257 --- /dev/null +++ b/packages/faucet/bin/cosmos-faucet-dist @@ -0,0 +1,6 @@ +#!/usr/bin/env node +const path = require("path"); + +// attempt to call in main file.... +const faucet = require(path.join(__dirname, "..", "dist", "node", "cli.js")); +faucet.main(process.argv.slice(2)); diff --git a/packages/faucet/package.json b/packages/faucet/package.json index a12c4062ff..2007b809e3 100644 --- a/packages/faucet/package.json +++ b/packages/faucet/package.json @@ -36,7 +36,8 @@ "test": "yarn build-or-skip && yarn test-node", "coverage": "nyc --reporter=text --reporter=lcov yarn test --quiet", "start-dev": "FAUCET_ADDRESS_PREFIX=wasm FAUCET_CREDIT_AMOUNT_UCOSM=10000000 FAUCET_CREDIT_AMOUNT_USTAKE=100000 FAUCET_CONCURRENCY=3 FAUCET_MNEMONIC=\"economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone\" ./bin/cosmos-faucet start \"http://localhost:26659\"", - "start-coralnet": "FAUCET_ADDRESS_PREFIX=coral FAUCET_TOKENS=\"ushell,ureef\" FAUCET_CREDIT_AMOUNT_USHELL=10000000 FAUCET_CREDIT_AMOUNT_UREEF=2000000 FAUCET_CONCURRENCY=3 FAUCET_MNEMONIC=\"economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone\" ./bin/cosmos-faucet start \"https://lcd.coralnet.cosmwasm.com\"" + "start-coralnet": "FAUCET_ADDRESS_PREFIX=coral FAUCET_TOKENS=\"ushell,ureef\" FAUCET_CREDIT_AMOUNT_USHELL=10000000 FAUCET_CREDIT_AMOUNT_UREEF=2000000 FAUCET_CONCURRENCY=3 FAUCET_MNEMONIC=\"economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone\" ./bin/cosmos-faucet start \"https://lcd.coralnet.cosmwasm.com\"", + "pack-node": "yarn build-or-skip && webpack --mode production --config webpack.node.config.js" }, "dependencies": { "@cosmjs/crypto": "workspace:packages/crypto", diff --git a/packages/faucet/webpack.node.config.js b/packages/faucet/webpack.node.config.js new file mode 100644 index 0000000000..94b875c41a --- /dev/null +++ b/packages/faucet/webpack.node.config.js @@ -0,0 +1,21 @@ +/* eslint-disable @typescript-eslint/naming-convention */ +const path = require("path"); + +const target = "node"; +const distdir = path.join(__dirname, "dist", target); + +module.exports = [ + { + target: target, + entry: "./build/cli.js", + output: { + path: distdir, + filename: "cli.js", + library: { + type: "commonjs", + }, + }, + plugins: [], + resolve: {}, + }, +];