github.com/braveheart12/insolar-09-08-19@v0.8.7/docker/Dockerfile (about) 1 # BUILDER CONTAINER 2 FROM golang:1.11.5-alpine3.9 AS insolard-builder 3 MAINTAINER eugene.blikh@insolar.io 4 5 RUN set -x && \ 6 mkdir -p /opt/bin /opt/config /opt/tmp /opt/log && \ 7 apk update && \ 8 apk add --no-cache --virtual /opt/.build-deps \ 9 git \ 10 make \ 11 alpine-sdk \ 12 bash 13 14 COPY [ "/docker/genconfig/genconfig.go", \ 15 "/opt/tmp/" ] 16 17 COPY . /go/src/github.com/insolar/insolar 18 WORKDIR /go/src/github.com/insolar/insolar 19 20 RUN set -x && \ 21 : "--------- insolard bulding --------------" && \ 22 : 'cd "/go/src/github.com/insolar/insolar"' && \ 23 make install-deps ensure && \ 24 make insolar insolard benchmark apirequester && \ 25 cp bin/insolar bin/insolard bin/benchmark bin/apirequester /opt/bin && \ 26 : "--------- helper utilities --------------" && \ 27 go get gopkg.in/yaml.v2 && \ 28 go build -o /opt/bin/genconfig /opt/tmp/genconfig.go 29 30 # INSOLARD CONTAINER 31 FROM alpine:3.9 AS insolard 32 MAINTAINER eugene.blikh@insolar.io 33 34 RUN set -x && \ 35 mkdir -p /var/log /opt/bin /etc/insolar /var/lib/insolar && \ 36 apk add --no-cache --virtual /opt/.runtime-deps \ 37 bash \ 38 curl 39 40 COPY [ "/docker/insolard.yaml.default", "/opt/tmp/" ] 41 COPY [ "/docker/healthcheck.sh", "/opt/bin/" ] 42 43 COPY --from=insolard-builder \ 44 [ "/opt/bin/insolar", \ 45 "/opt/bin/insolard", \ 46 "/opt/bin/benchmark", \ 47 "/opt/bin/apirequester", \ 48 "/opt/bin/genconfig", \ 49 "/opt/bin/"] 50 COPY docker/insolard-entrypoint.sh /opt/bin/docker-entrypoint.sh 51 52 EXPOSE 7900 7901 8001 18182 19191 53 HEALTHCHECK --start-period=5m --interval=1m --timeout=30s --retries=5 \ 54 CMD [ "/opt/bin/healthcheck.sh" ] 55 VOLUME [ "/etc/insolar", "/var/lib/insolar" ] 56 57 ENTRYPOINT [ "/opt/bin/docker-entrypoint.sh" ] 58 CMD [] 59 60 # GENESIS BUILDER 61 FROM insolard-builder AS insolard-genesis-builder 62 MAINTAINER ivan.serezhkin@insolar.io 63 64 WORKDIR /opt 65 RUN set -x && \ 66 cp -rf /go/src/github.com/insolar/insolar/keys /opt || true && \ 67 /go/src/github.com/insolar/insolar/scripts/build/genesis/genesis.sh 68 69 # GENESIS CONTAINER 70 FROM alpine:3.9 AS genesis 71 MAINTAINER ivan.serezhkin@insolar.io 72 73 RUN mkdir -p /opt/genesis 74 COPY --from=insolard-genesis-builder \ 75 [ "/opt/data.tgz", \ 76 "/opt/keys.tgz", \ 77 "/opt/genesis/" ] 78 VOLUME [ "/opt/output" ] 79 CMD ['cp', '/opt/genesis', '/opt/output/genesis'] 80 81 # INSGORUND CONTAINER 82 FROM alpine:3.9 AS insgorund 83 MAINTAINER ivan.serezhkin@insolar.io 84 85 RUN set -x && \ 86 mkdir -p /var/log /opt/bin /tmp/insgorund /opt/insgorund && \ 87 apk add --no-cache --virtual /opt/.runtime-deps \ 88 bash \ 89 curl 90 91 COPY --from=insolard-genesis-builder /opt/bin/insgorund /opt/bin/insgorund 92 COPY docker/insgorund-entrypoint.sh /opt/bin/docker-entrypoint.sh 93 94 EXPOSE 7777 8002 95 96 ENTRYPOINT [ "/opt/bin/docker-entrypoint.sh" ] 97 CMD []