pyth-crosschain/Dockerfile.multisig

38 lines
1.3 KiB
Docker
Raw Normal View History

#syntax=docker/dockerfile:1.2@sha256:e2a8561e419ab1ba6b2fe6cbdf49fd92b95912df1cf7d313c3e2230a333fdbcc
FROM ghcr.io/certusone/solana:1.10.31
# This image builds an environment to initialize and use a local
# devnet multisig. It uses Pyth's Mesh client.
RUN apt-get update && apt-get install -yq python3 libudev-dev ncat
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && apt-get install -y nodejs
WORKDIR /root
# Also used by the multisig provisioning script
ENV MULTISIG_SCRIPT_DIR=/root/pyth/multisig-wh-message-builder
WORKDIR $MULTISIG_SCRIPT_DIR
ENV LOCAL_MULTISIG_SCRIPT_DIR=third_party/pyth/multisig-wh-message-builder
# Add a barebones representation of our deps for Docker layer caching
ADD $LOCAL_MULTISIG_SCRIPT_DIR/package.json \
$LOCAL_MULTISIG_SCRIPT_DIR/package-lock.json \
$LOCAL_MULTISIG_SCRIPT_DIR/tsconfig.json \
.
RUN mkdir src # tsc is run as part of the install, add minimal placeholders to satisfy it
RUN touch src/index.ts
RUN --mount=type=cache,target=/home/node/.cache \
npm ci && cp -r node_modules node_modules_cached
RUN rm -rf node_modules && mv node_modules_cached node_modules
# Add the rest of the code. This ensures that real code changes do not affect the layer caching of `npm ci`
ADD third_party/pyth /root/pyth
ADD solana/keys /usr/src/solana/keys
RUN npm install