mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-23 01:28:00 +00:00
bf4024fd49
* remove exec flag on json file * fix dockerignore filter to allow building the injected docker image * Update docker/injected.Dockerfile * Update docker/scripts/build-injected-image.sh Co-authored-by: Martin Pugh <pugh@s3kr.it> Co-authored-by: Denis Pisarev <denis.pisarev@parity.io>
62 lines
2.8 KiB
Docker
62 lines
2.8 KiB
Docker
FROM rust:buster as builder
|
|
|
|
RUN apt-get update && apt-get install time clang libclang-dev llvm -y
|
|
RUN rustup toolchain install nightly
|
|
RUN rustup target add wasm32-unknown-unknown --toolchain nightly
|
|
RUN command -v wasm-gc || cargo +nightly install --git https://github.com/alexcrichton/wasm-gc --force
|
|
|
|
WORKDIR /paritytech/cumulus
|
|
|
|
# Ideally, we could just do something like `COPY . .`, but that doesn't work:
|
|
# it busts the cache every time non-source files like inject_bootnodes.sh change,
|
|
# as well as when non-`.dockerignore`'d transient files (*.log and friends)
|
|
# show up. There is no way to exclude particular files, or write a negative
|
|
# rule, using Docker's COPY syntax, which derives from go's filepath.Match rules.
|
|
#
|
|
# We can't combine these into a single big COPY operation like
|
|
# `COPY collator consensus network runtime test Cargo.* .`, because in that case
|
|
# docker will copy the _contents_ of each directory into the image workdir,
|
|
# not the actual directory. We're stuck just enumerating them.
|
|
COPY . .
|
|
|
|
RUN cargo build --release --locked -p polkadot-collator
|
|
|
|
# the collator stage is normally built once, cached, and then ignored, but can
|
|
# be specified with the --target build flag. This adds some extra tooling to the
|
|
# image, which is required for a launcher script. The script simply adds two
|
|
# arguments to the list passed in:
|
|
#
|
|
# --bootnodes /ip4/127.0.0.1/tcp/30333/p2p/PEER_ID
|
|
#
|
|
# with the appropriate ip and ID for both Alice and Bob
|
|
FROM debian:buster-slim as collator
|
|
RUN apt-get update && apt-get install jq curl bash -y && \
|
|
curl -sSo /wait-for-it.sh https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh && \
|
|
chmod +x /wait-for-it.sh && \
|
|
curl -sL https://deb.nodesource.com/setup_12.x | bash - && \
|
|
apt-get install -y nodejs && \
|
|
npm install --global yarn && \
|
|
yarn global add @polkadot/api-cli@0.10.0-beta.14
|
|
COPY --from=builder \
|
|
/paritytech/cumulus/target/release/polkadot-collator /usr/bin
|
|
COPY ./docker/scripts/inject_bootnodes.sh /usr/bin
|
|
CMD ["/usr/bin/inject_bootnodes.sh"]
|
|
COPY ./docker/scripts/healthcheck.sh /usr/bin/
|
|
HEALTHCHECK --interval=300s --timeout=75s --start-period=30s --retries=3 \
|
|
CMD ["/usr/bin/healthcheck.sh"]
|
|
|
|
# the runtime stage is normally built once, cached, and ignored, but can be
|
|
# specified with the --target build flag. This just preserves one of the builder's
|
|
# outputs, which can then be moved into a volume at runtime
|
|
FROM debian:buster-slim as runtime
|
|
COPY --from=builder \
|
|
/paritytech/cumulus/target/release/wbuild/cumulus-test-parachain-runtime/cumulus_test_parachain_runtime.compact.wasm \
|
|
/var/opt/
|
|
CMD ["cp", "-v", "/var/opt/cumulus_test_parachain_runtime.compact.wasm", "/runtime/"]
|
|
|
|
FROM debian:buster-slim
|
|
COPY --from=builder \
|
|
/paritytech/cumulus/target/release/polkadot-collator /usr/bin
|
|
|
|
CMD ["/usr/bin/polkadot-collator"]
|