fabric-samples/test-network-nano-bash/Dockerfile
James Taylor 594a827106 Update nano test network
Add an option to run the network in a single container

Signed-off-by: James Taylor <jamest@uk.ibm.com>

# Conflicts:
#	test-network-nano-bash/README.md
2022-08-30 10:43:07 +01:00

42 lines
1.9 KiB
Docker

FROM alpine:3.14 AS build
WORKDIR /build
ENV HLF_VERSION=2.4.6
ENV YQ_VERSION=v4.22.1
ENV YQ_BINARY=yq_linux_amd64
RUN apk --no-cache add curl dumb-init
RUN curl -L --retry 5 --retry-delay 3 "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/${YQ_BINARY}.tar.gz" | tar xz && mv ${YQ_BINARY} /usr/bin/yq
RUN curl -L --retry 5 --retry-delay 3 "https://github.com/hyperledger/fabric/releases/download/v${HLF_VERSION}/hyperledger-fabric-linux-amd64-${HLF_VERSION}.tar.gz" | tar xz
RUN yq -i 'del(.vm.endpoint) | del(.chaincode.externalBuilders) | .chaincode.externalBuilders[0].name = "ccaas_builder" | .chaincode.externalBuilders[0].path = "/home/nanofab/ccbuilders/ccaas" | .chaincode.externalBuilders[0].propagateEnvironment[0] = "CHAINCODE_AS_A_SERVICE_BUILDER_CONFIG"' config/core.yaml
COPY chaincode-external/ ./chaincode-external/
RUN yq -i '.address = "host.docker.internal:9999"' chaincode-external/connection.json
RUN cd chaincode-external && tar cfz code.tar.gz connection.json && tar cfz external-chaincode.tar.gz code.tar.gz metadata.json
FROM alpine:3.14
ENV FABRIC_CFG_PATH /etc/hyperledger/fabric
RUN apk --no-cache add libc6-compat
COPY --from=build /usr/bin/dumb-init /usr/bin/dumb-init
COPY --chown=root:root --from=build /build/bin/* /usr/local/bin/
COPY --chown=root:root --from=build /build/config/* ${FABRIC_CFG_PATH}/
RUN addgroup -g 500 nanofab && adduser -u 500 -D -h /home/nanofab -G nanofab nanofab
USER nanofab
WORKDIR /home/nanofab
RUN mkdir -p ./ccbuilders/ccaas ./network/logs && ln -s /usr/local/bin ./bin && ln -s ${FABRIC_CFG_PATH} ./config
COPY --chown=nanofab:nanofab --from=build /build/builders/ccaas/ /home/nanofab/ccbuilders/ccaas/
COPY --chown=nanofab:nanofab --from=build /build/chaincode-external/ /home/nanofab/chaincode-external/
COPY --chown=nanofab:nanofab *.sh *.yaml ./network/
WORKDIR /home/nanofab/network
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
CMD ["/home/nanofab/network/network.sh","start"]