mirror of https://github.com/hyperledger/besu
[NC-887] release docker image (#71)
Provide a release grade Docker image fix NC-887 use OpenJDK 8 slim docker image and integrated builder step Replace the previous unused dockerfile with also some integrated documentation Automatic building of the image and push to DockerHub will be done in a new Jenkins job
parent
46fdab18d2
commit
3a1f7f163d
@ -1,13 +1,42 @@ |
||||
# Base Alpine Linux based image with OpenJDK JRE only |
||||
#FROM openjdk:8-jre-alpine |
||||
FROM openjdk:8-jdk |
||||
# Pantheon release grade Docker image |
||||
# |
||||
# What is this image for ? |
||||
# This image is for using Pantheon within Docker for any purpose, test, dev, production. |
||||
# The Docker file integrates two steps, first the build with a JDK and then the runnning image with a JRE. |
||||
# Then you don't need a JDK installed locally to build Pantheon, just run the docker build |
||||
# command and once the image is created you can use it as if you were using a regular Patheon binary. |
||||
# |
||||
# How to use this image: |
||||
# |
||||
# first build it (use the name and tag you like) : |
||||
# |
||||
# docker build -t mypantheon:myTag . |
||||
# |
||||
# then run pantheon: |
||||
# Either as a simple node with sync on mainnet with a volume for data (keeps the database between runs) and that's all: |
||||
# |
||||
# docker run -d --mount source=pantheon_database,target=/opt/pantheon/database --name myPantheon mypantheon:myTag |
||||
# |
||||
# or as a simple node with sync on mainnet with a volume for data (keeps the database between runs) and HTTP/WS RPC access : |
||||
# |
||||
# docker run -d --mount source=pantheon_database,target=/opt/pantheon/database \ |
||||
# --name myPantheon -p 8545:8545 -p 8546:8546 mypantheon:myTag \ |
||||
# --rpc-enabled --rpc-listen=0.0.0.0:8545 --rpc-cors-origins=mydomain.tld \ |
||||
# --ws-enabled -ws-listen=0.0.0.0:8546 |
||||
|
||||
# copy application (with libraries inside) |
||||
ADD build/install/pantheon /opt/pantheon/ |
||||
ADD integration-tests/src/test/resources/tech/pegasys/pantheon/tests/cluster/docker/geth/genesis.json /opt/pantheon/genesis.json |
||||
# builder temporary image with JDK |
||||
FROM openjdk:8-jdk-slim as builder |
||||
# copy all pantheon source to the image |
||||
COPY . /tmp/pantheon |
||||
WORKDIR /tmp/pantheon |
||||
# build the distribution |
||||
RUN ./gradlew installDist |
||||
|
||||
# final image with only jre |
||||
FROM openjdk:8-jre-slim |
||||
# copy application from builder image |
||||
COPY --from=builder /tmp/pantheon/build/install/pantheon /opt/pantheon/ |
||||
# List Exposed Ports |
||||
EXPOSE 8084 8545 30303 30303/udp |
||||
|
||||
EXPOSE 8546 8545 30303 |
||||
# specify default command |
||||
ENTRYPOINT ["/opt/pantheon/bin/pantheon"] |
||||
|
Loading…
Reference in new issue