Dockerfile.pyth 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # syntax=docker/dockerfile:1.2
  2. # Wormhole-specific setup for pyth
  3. FROM pythfoundation/pyth-client:devnet-v2.2@sha256:2ce8de6a43b2fafafd15ebdb723c530a0319860dc40c9fdb97149d5aa270fdde
  4. USER root
  5. # At the time of this writing, debian is fussy about performing an
  6. # apt-get update. Please add one if repos go stale
  7. RUN apt-get install -y netcat-openbsd python3 && \
  8. rm -rf /var/lib/apt/lists/*
  9. ADD solana/keys /opt/solana/keys
  10. ENV PYTH_KEY_STORE=/home/pyth/.pythd
  11. # Prepare keys
  12. WORKDIR $PYTH_KEY_STORE
  13. RUN cp /opt/solana/keys/pyth_publisher.json publish_key_pair.json && \
  14. cp /opt/solana/keys/pyth_program.json program_key_pair.json && \
  15. chown pyth:pyth -R . && \
  16. chmod go-rwx -R .
  17. # Rebuild Pyth sources from scratch
  18. # This comes soon after mainnet-v2.1
  19. ENV PYTH_SRC_REV=31e3188bbf52ec1a25f71e4ab969378b27415b0a
  20. ENV PYTH_SRC_ROOT=/home/pyth/pyth-client
  21. ADD https://github.com/pyth-network/pyth-client/archive/$PYTH_SRC_REV.tar.gz .
  22. RUN tar -xvf *.tar.gz && \
  23. rm -rf $PYTH_SRC_ROOT *.tar.gz && \
  24. mv pyth-client-$PYTH_SRC_REV $PYTH_SRC_ROOT/
  25. WORKDIR $PYTH_SRC_ROOT/build
  26. RUN cmake .. && make
  27. # Prepare setup script
  28. ADD third_party/pyth/pyth_utils.py /opt/pyth/pyth_utils.py
  29. ADD third_party/pyth/pyth_publisher.py /opt/pyth/pyth_publisher.py
  30. RUN chmod a+rx /opt/pyth/*.py
  31. USER pyth
  32. ENV PYTH=$PYTH_SRC_ROOT/build/pyth
  33. ENV READINESS_PORT=2000