Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .pnp.cjs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.
Binary file not shown.
61 changes: 61 additions & 0 deletions packages/dashmate/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
FROM node:16-alpine as builder

ARG NODE_ENV=production
ENV NODE_ENV ${NODE_ENV}

RUN apk update && \
apk --no-cache upgrade && \
apk add --no-cache git \
openssh-client \
python3 \
alpine-sdk

# Enable corepack https://github.com/nodejs/corepack
RUN corepack enable

WORKDIR /platform

# Copy yarn files
COPY .yarn ./.yarn
COPY package.json yarn.lock .yarnrc.yml .pnp.* ./

# Copy only necessary packages from monorepo
COPY packages/dashmate packages/dashmate
COPY packages/dashpay-contract packages/dashpay-contract
COPY packages/dpns-contract packages/dpns-contract
COPY packages/js-dpp packages/js-dpp
COPY packages/feature-flags-contract packages/feature-flags-contract
COPY packages/masternode-reward-shares-contract packages/masternode-reward-shares-contract
COPY packages/wallet-lib packages/wallet-lib
COPY packages/js-dash-sdk packages/js-dash-sdk
COPY packages/js-dapi-client packages/js-dapi-client
COPY packages/js-grpc-common packages/js-grpc-common
COPY packages/dapi-grpc packages/dapi-grpc
COPY packages/dash-spv packages/dash-spv

# Print build output
RUN yarn config set enableInlineBuilds true

# Install Test Suite specific dependencies using previous
# node_modules directory to reuse built binaries
RUN --mount=type=cache,target=/tmp/unplugged \
cp -R /tmp/unplugged /platform/.yarn/ && \
yarn workspaces focus --production dashmate && \
cp -R /platform/.yarn/unplugged /tmp/

FROM node:16-alpine

ARG NODE_ENV=production
ENV NODE_ENV ${NODE_ENV}

RUN apk update && \
apk --no-cache upgrade && \
apk add --no-cache docker-cli

LABEL maintainer="Dash Developers <dev@dash.org>"
LABEL description="DAPI Helper Node.JS"


WORKDIR /platform

COPY --from=builder /platform /platform
19 changes: 19 additions & 0 deletions packages/dashmate/configs/schema/configJsonSchema.js
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,10 @@ module.exports = {
type: ['string', 'null'],
minLength: 32,
},
id: {
type: ['string', 'null'],
minLength: 32,
},
},
required: ['apiKey'],
additionalProperties: false,
Expand Down Expand Up @@ -632,6 +636,21 @@ module.exports = {
required: ['dapi', 'drive', 'dpns', 'dashpay', 'featureFlags', 'sourcePath', 'masternodeRewardShares'],
additionalProperties: false,
},
dashmate: {
type: 'object',
properties: {
helper: {
type: 'object',
properties: {
docker: {
$ref: '#/definitions/docker',
},
},
required: ['docker'],
additionalProperties: false,
},
},
},
externalIp: {
type: ['string', 'null'],
format: 'ipv4',
Expand Down
10 changes: 9 additions & 1 deletion packages/dashmate/configs/system/base.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ module.exports = {
dapi: {
envoy: {
docker: {
image: 'envoyproxy/envoy:v1.22-latest',
image: 'dashpay/envoy:0.24-dev',
},
http: {
port: 3000,
Expand All @@ -96,6 +96,7 @@ module.exports = {
providerConfigs: {
zerossl: {
apiKey: null,
id: null,
},
},
},
Expand Down Expand Up @@ -194,6 +195,13 @@ module.exports = {
secondPublicKey: null,
},
},
dashmate: {
helper: {
docker: {
image: 'dashpay/dashamte-helper:0.24-dev',
},
},
},
externalIp: null,
network: NETWORK_TESTNET,
environment: 'production',
Expand Down
14 changes: 14 additions & 0 deletions packages/dashmate/docker-compose.platform.build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,17 @@ services:
dockerfile: ${PLATFORM_SOURCE_PATH:?err}/packages/dapi/Dockerfile
image: dapi:local
stop_grace_period: 10s

dapi_envoy:
build:
context: ${PLATFORM_SOURCE_PATH:?err}
dockerfile: ${PLATFORM_SOURCE_PATH:?err}/packages/dashmate/docker/envoy/Dockerfile
image: dapi-envoy:local
stop_grace_period: 10s

dashamte_helper:
build:
context: ${PLATFORM_SOURCE_PATH:?err}
dockerfile: ${PLATFORM_SOURCE_PATH:?err}/packages/dashmate/Dockerfile
image: dashamte_helper:local
stop_grace_period: 10s
8 changes: 8 additions & 0 deletions packages/dashmate/docker-compose.platform.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,14 @@ services:
- ${DASHMATE_HOME_DIR:?err}/ssl/${CONFIG_NAME:?err}/private.key:/etc/ssl/private.key
stop_grace_period: 10s

dashamte_helper:
image: ${DASHMATE_HELPER_DOCKER_IMAGE:?err}
restart: unless-stopped
command: yarn workspace dashmate helper ${CONFIG_NAME:?err}
volumes:
- ${DASHMATE_HOME_DIR:?err}:/root/.dashmate
- /var/run/docker.sock:/var/run/docker.sock

volumes:
drive_abci_data:
drive_tenderdash:
9 changes: 9 additions & 0 deletions packages/dashmate/docker/envoy/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM envoyproxy/envoy:v1.22-latest as builder

RUN apt update && \
apt -qq -y install python

COPY packages/dashmate/docker/envoy/hot-restarter.py /etc/envoy/hot-restarter.py
COPY packages/dashmate/docker/envoy/start_envoy.sh /etc/envoy/start_envoy.sh

ENTRYPOINT ["/etc/envoy/hot-restarter.py", "/etc/envoy/start_envoy.sh"]
Loading