2
2
# SPDX-License-Identifier: Apache-2.0
3
3
#
4
4
5
-
6
- FROM golang:1.18 AS builder
5
+ FROM debian:bullseye-slim AS builder
7
6
ENV DEBIAN_FRONTEND=noninteractive
8
7
8
+ ARG TARGETARCH
9
+ ARG TARGETOS
10
+
9
11
# Build tools
10
12
RUN apt-get update \
11
13
&& apt-get -y install build-essential gcc gzip \
12
14
&& apt-get -y install python3 python3-distutils libpython3-dev software-properties-common \
13
15
&& apt-get -y install curl git jq unzip moreutils
14
16
17
+ RUN curl -sL https://go.dev/dl/go1.22.3.${TARGETOS}-${TARGETARCH}.tar.gz | tar zxf - -C /usr/local
18
+ ENV PATH="/usr/local/go/bin:$PATH"
19
+
20
+ ENV GOROOT=/usr/local/go
21
+ ENV GOPATH=/tmp/go
22
+
15
23
WORKDIR $GOPATH/src/github.com/hyperledger
16
24
RUN git clone --depth 1 --branch release-2.5 https://github.com/hyperledger/fabric.git \
17
25
&& git clone --depth 1 --branch v1.5.5 https://github.com/hyperledger/fabric-ca.git
@@ -31,57 +39,50 @@ ADD . $GOPATH/src/github.com/IBM/microfab
31
39
RUN go build -o microfabd cmd/microfabd/main.go
32
40
33
41
WORKDIR /fabric
34
- RUN curl -sSL https://github.com/hyperledger/fabric/releases/download/v2.4.6/hyperledger-fabric-linux-amd64-2.4.6.tar.gz | tar xzf - config
35
-
36
-
37
- # RUN FABRIC_DOCKER_REGISTRY=ghcr.io/hyperledger \
38
- # curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh \
39
- # | bash -s -- binary --fabric-version 2.5.0-alpha1 --ca-version 1.5.6-beta
42
+ RUN curl -sSL https://github.com/hyperledger/fabric/releases/download/v2.5.7/hyperledger-fabric-linux-amd64-2.5.7.tar.gz | tar xzf - config
40
43
41
- FROM couchdb:3.1.2
44
+ FROM couchdb:3.3.3
42
45
43
46
# Though they are populated by docker buildx, the ARG reference is required to make them available for use
44
47
ARG TARGETARCH
45
48
ARG TARGETOS
46
49
47
50
RUN apt-get update && apt-get install -y \
48
- jq xz-utils unzip vim\
51
+ jq xz-utils unzip vim \
49
52
&& rm -rf /var/lib/apt/lists/*
50
53
51
54
RUN groupadd -g 7051 microfab \
52
55
&& useradd -u 7051 -g microfab -G root -s /bin/bash -m microfab \
53
56
&& mkdir -p /home/microfab/builders /home/microfab/data \
54
57
&& chown -R microfab:microfab /home/microfab
55
58
56
- # go1.19.4.linux-amd64.tar.gz
57
- # go1.19.4.linux-arm64.tar.gz
58
59
RUN mkdir -p /opt/go /opt/node /opt/java \
59
- && curl -sSL https://dl.google.com/go/go1.17.2 .$TARGETOS-$TARGETARCH.tar.gz | tar xzf - -C /opt/go --strip-components=1
60
+ && curl -sSL https://dl.google.com/go/go1.22.3 .$TARGETOS-$TARGETARCH.tar.gz | tar xzf - -C /opt/go --strip-components=1
60
61
61
62
# OpenJDK11U-jdk_x64_linux_hotspot_11.0.17_8.tar.gz
62
63
# node-v18.12.1-linux-x64.tar.xz
63
64
RUN if [ "${TARGETARCH}" = "amd64" ]; then ARCH=x64 \
64
65
&& curl -sSL https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jdk_${ARCH}_${TARGETOS}_hotspot_11.0.17_8.tar.gz | tar xzf - -C /opt/java --strip-components=1 \
65
- && curl -sSL https://nodejs.org/download/release/v16.4 .0/node-v16.4 .0-${TARGETOS}-${ARCH}.tar.xz | tar xJf - -C /opt/node --strip-components=1 \
66
+ && curl -sSL https://nodejs.org/download/release/v20.14 .0/node-v20.14 .0-${TARGETOS}-${ARCH}.tar.xz | tar xJf - -C /opt/node --strip-components=1 \
66
67
; fi
67
68
68
69
# node-v18.12.1-linux-arm64.tar.xz
69
70
# OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.17_8.tar.gz
70
71
RUN if [ "${TARGETARCH}" = "arm64" ]; then ARCH=aarch64 \
71
72
&& curl -sSL https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jdk_${ARCH}_${TARGETOS}_hotspot_11.0.17_8.tar.gz | tar xzf - -C /opt/java --strip-components=1 \
72
- && curl -sSL https://nodejs.org/download/release/v16.4 .0/node-v16.4 .0-${TARGETOS}-${TARGETARCH}.tar.xz | tar xJf - -C /opt/node --strip-components=1 \
73
+ && curl -sSL https://nodejs.org/download/release/v20.14 .0/node-v20.14 .0-${TARGETOS}-${TARGETARCH}.tar.xz | tar xJf - -C /opt/node --strip-components=1 \
73
74
; fi
74
75
75
76
76
77
COPY docker/local.ini /opt/couchdb/etc/local.d/local.ini
77
78
COPY docker/docker-entrypoint.sh /usr/local/bin
78
- COPY --from=builder /go/src/github.com/hyperledger/fabric/build/bin/* /usr/local/bin/
79
- COPY --from=builder /go/src/github.com/hyperledger/fabric-ca/release/build/bin/* /usr/local/bin/
79
+ COPY --from=builder /tmp/ go/src/github.com/hyperledger/fabric/build/bin/* /usr/local/bin/
80
+ COPY --from=builder /tmp/ go/src/github.com/hyperledger/fabric-ca/release/build/bin/* /usr/local/bin/
80
81
COPY --from=builder /fabric/config /etc/hyperledger/fabric
81
- COPY --from=builder /go/src/github.com/IBM/microfab/microfabd /usr/local/bin/
82
+ COPY --from=builder /tmp/ go/src/github.com/IBM/microfab/microfabd /usr/local/bin/
82
83
83
- COPY --from=builder --chown=microfab:microfab /go/src/github.com/IBM/microfab/builders/ /home/microfab/builders/
84
- COPY --from=builder --chown=microfab:microfab /go/src/github.com/hyperledger/fabric/release/*/builders/ccaas /home/microfab/builders/ccaas
84
+ COPY --from=builder --chown=microfab:microfab /tmp/ go/src/github.com/IBM/microfab/builders/ /home/microfab/builders/
85
+ COPY --from=builder --chown=microfab:microfab /tmp/ go/src/github.com/hyperledger/fabric/release/*/builders/ccaas /home/microfab/builders/ccaas
85
86
86
87
RUN sed -i 's/opt/home/g' /opt/couchdb/etc/local.d/local.ini
87
88
@@ -98,8 +99,8 @@ RUN curl -sSL -o /tmp/gradle.zip https://services.gradle.org/distributions/gradl
98
99
&& rm -f /tmp/gradle.zip \
99
100
&& rm -rf /opt/gradle-5.6.4 \
100
101
&& cd - \
101
- && curl -sSL https://downloads .apache.org/maven/maven-3/3.6.3 /binaries/apache-maven-3.6.3 -bin.tar.gz | tar xzf - -C /opt \
102
- && mv /opt/apache-maven-3.6.3 /opt/maven
102
+ && curl -sSL https://dlcdn .apache.org/maven/maven-3/3.9.7 /binaries/apache-maven-3.9.7 -bin.tar.gz | tar xzf - -C /opt \
103
+ && mv /opt/apache-maven-3.9.7 /opt/maven
103
104
ENV PATH=/opt/gradle/bin:/opt/maven/bin:${PATH}
104
105
ADD builders/java/pom.xml /opt/fabric-chaincode-java/
105
106
@@ -119,4 +120,4 @@ ENV GOENV=/tmp/goenv
119
120
ENV GOPATH=/tmp/go
120
121
121
122
VOLUME /home/microfab/data
122
- ENTRYPOINT [ "tini", "--", "/usr/local/bin/docker-entrypoint.sh" ]
123
+ ENTRYPOINT [ "tini", "--", "/usr/local/bin/docker-entrypoint.sh" ]
0 commit comments