126208cc74
* version: bump stable to 2.1.7 * Adjust requests costs for light client (#9925) * PIP Table Cost relative to average peers instead of max peers * Add tracing in PIP new_cost_table * Update stat peer_count * Use number of leeching peers for Light serve costs * Fix test::light_params_load_share_depends_on_max_peers (wrong type) * Remove (now) useless test * Remove `load_share` from LightParams.Config Prevent div. by 0 * Add LEECHER_COUNT_FACTOR * PR Grumble: u64 to u32 for f64 casting * Prevent u32 overflow for avg_peer_count * Add tests for LightSync::Statistics * Fix empty steps (#9939) * Don't send empty step twice or empty step then block. * Perform basic validation of locally sealed blocks. * Don't include empty step twice. * prevent silent errors in daemon mode, closes #9367 (#9946) * Fix light client informant while syncing (#9932) * Add `is_idle` to LightSync to check importing status * Use SyncStateWrapper to make sure is_idle gets updates * Update is_major_import to use verified queue size as well * Add comment for `is_idle` * Add Debug to `SyncStateWrapper` * `fn get` -> `fn into_inner` * ci: rearrange pipeline by logic (#9970) * ci: rearrange pipeline by logic * ci: rename docs script * Add readiness check for docker container (#9804) * Update Dockerfile Since parity is built for "mission critical use", I thought other operators may see the need for this. Adding the `curl` and `jq` commands allows for an extremely simple health check to be usable in container orchestrators. For example. Here is a health check for a parity docker container running in Kubernetes. This can be setup as a readiness Probe that would prevent clustered nodes that aren't ready from serving traffic. ```bash #!/bin/bash ETH_SYNCING=$(curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://localhost:8545 -H 'Content-Type: application/json') RESULT=$(echo "$ETH_SYNCING | jq -r .result) if [ "$RESULT" == "false" ]; then echo "Parity is ready to start accepting traffic" exit 0 else echo "Parity is still syncing the blockchain" exit 1 fi ``` * add sync check script * Fix docker script (#9854) * Dockerfile: change source path of the newly added check_sync.sh (#9869) * Do not use the home directory as the working dir in docker (#9834) * Do not create a home directory. * Re-add -m flag * fix docker build (#9971) * bump smallvec to 0.6 in ethcore-light, ethstore and whisper (#9588) * bump smallvec to 0.6 in ethcore-light, ethstore and whisper * bump transaction-pool * Fix test. * patch cargo to use tokio-proto from git repo this makes sure we no longer depend on smallvec 0.2.1 which is affected by https://github.com/servo/rust-smallvec/issues/96 * use patched version of untrusted 0.5.1 * ci: allow audit to fail
37 lines
941 B
Docker
37 lines
941 B
Docker
FROM ubuntu:xenial
|
|
MAINTAINER Parity Technologies <devops@parity.io>
|
|
#set ENVIROMENT
|
|
ARG TARGET
|
|
ENV TARGET ${TARGET}
|
|
|
|
# install tools and dependencies
|
|
RUN apt update && apt install -y --no-install-recommends openssl libudev-dev file curl jq
|
|
|
|
# show backtraces
|
|
ENV RUST_BACKTRACE 1
|
|
|
|
#cleanup Docker image
|
|
RUN apt autoremove -y
|
|
RUN apt clean -y
|
|
RUN rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/*
|
|
|
|
RUN groupadd -g 1000 parity \
|
|
&& useradd -m -u 1000 -g parity -s /bin/sh parity
|
|
|
|
|
|
#add TARGET to docker image
|
|
COPY artifacts/x86_64-unknown-linux-gnu/$TARGET /bin/$TARGET
|
|
|
|
# Build a shell script because the ENTRYPOINT command doesn't like using ENV
|
|
RUN echo "#!/bin/bash \n ${TARGET} \$@" > ./entrypoint.sh
|
|
RUN chmod +x ./entrypoint.sh
|
|
|
|
COPY scripts/docker/hub/check_sync.sh /check_sync.sh
|
|
|
|
# switch to user parity here
|
|
USER parity
|
|
|
|
# setup ENTRYPOINT
|
|
EXPOSE 5001 8080 8082 8083 8545 8546 8180 30303/tcp 30303/udp
|
|
ENTRYPOINT ["./entrypoint.sh"]
|