47
47
PROJECT_VERSION =$(BASE_VERSION )
48
48
endif
49
49
50
- DOCKER_TAG =$(shell uname -m) -$(PROJECT_VERSION )
51
-
52
50
PKGNAME = github.com/$(PROJECT_NAME )
53
51
GO_LDFLAGS = -X github.com/hyperledger/fabric/metadata.Version=$(PROJECT_VERSION )
54
52
CGO_FLAGS = CGO_CFLAGS=" " CGO_LDFLAGS="-lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy"
55
53
UID = $(shell id -u)
54
+ ARCH =$(shell uname -m)
56
55
CHAINTOOL_RELEASE =v0.9.0
56
+ BASEIMAGE_RELEASE =$(shell cat ./.baseimage-release)
57
+
58
+ DOCKER_TAG =$(ARCH ) -$(PROJECT_VERSION )
59
+ BASE_DOCKER_TAG =$(ARCH ) -$(BASEIMAGE_RELEASE )
57
60
58
61
EXECUTABLES = go docker git curl
59
62
K := $(foreach exec,$(EXECUTABLES ) ,\
@@ -63,13 +66,9 @@ K := $(foreach exec,$(EXECUTABLES),\
63
66
SUBDIRS = gotools sdk/node
64
67
SUBDIRS: =$(strip $(SUBDIRS ) )
65
68
66
- # Make our baseimage depend on any changes to images/base or scripts/provision
67
- BASEIMAGE_RELEASE = $(shell cat ./images/base/release)
68
- BASEIMAGE_DEPS = $(shell git ls-files images/base scripts/provision)
69
-
70
69
JAVASHIM_DEPS = $(shell git ls-files core/chaincode/shim/java)
71
70
PROJECT_FILES = $(shell git ls-files)
72
- IMAGES = base src ccenv peer membersrvc javaenv
71
+ IMAGES = src ccenv peer membersrvc javaenv
73
72
74
73
all : peer membersrvc checks
75
74
@@ -122,14 +121,14 @@ linter: gotools
122
121
# we may later inject the binary into a different docker environment
123
122
# This is necessary since we cannot guarantee that binaries built
124
123
# on the host natively will be compatible with the docker env.
125
- % /bin/protoc-gen-go : build/image/base/.dummy Makefile
124
+ % /bin/protoc-gen-go : Makefile
126
125
@echo " Building $@ "
127
126
@mkdir -p $(@D )
128
127
@docker run -i \
129
128
--user=$(UID ) \
130
129
-v $(abspath vendor/github.com/golang/protobuf) :/opt/gopath/src/github.com/golang/protobuf \
131
130
-v $(abspath $(@D ) ) :/opt/gopath/bin \
132
- hyperledger/fabric-baseimage go install github.com/golang/protobuf/protoc-gen-go
131
+ hyperledger/fabric-baseimage: $( BASE_DOCKER_TAG ) go install github.com/golang/protobuf/protoc-gen-go
133
132
134
133
build/bin/chaintool : Makefile
135
134
@echo " Installing chaintool"
@@ -172,25 +171,19 @@ build/bin/block-listener:
172
171
@echo " Binary available as $@ "
173
172
@touch $@
174
173
175
- build/bin/% : build/image/base/.dummy $(PROJECT_FILES )
174
+ build/bin/% : $(PROJECT_FILES )
176
175
@mkdir -p $(@D )
177
176
@echo " $@ "
178
177
$(CGO_FLAGS ) GOBIN=$(abspath $(@D ) ) go install -ldflags " $( GO_LDFLAGS) " $(PKGNAME ) /$(@F )
179
178
@echo " Binary available as $@ "
180
179
@touch $@
181
180
182
- # Special override for base-image.
183
- build/image/base/.dummy : $(BASEIMAGE_DEPS )
184
- @echo " Building docker base-image"
185
- @mkdir -p $(@D )
186
- @./scripts/provision/docker.sh $(BASEIMAGE_RELEASE )
187
- @touch $@
188
-
189
181
# Special override for src-image
190
- build/image/src/.dummy : build/image/base/.dummy $(PROJECT_FILES )
182
+ build/image/src/.dummy : $(PROJECT_FILES )
191
183
@echo " Building docker src-image"
192
184
@mkdir -p $(@D )
193
185
@cat images/src/Dockerfile.in \
186
+ | sed -e ' s/_BASE_TAG_/$(BASE_DOCKER_TAG)/g' \
194
187
| sed -e ' s/_TAG_/$(DOCKER_TAG)/g' \
195
188
> $(@D ) /Dockerfile
196
189
@git ls-files | tar -jcT - > $(@D ) /gopath.tar.bz2
@@ -202,6 +195,7 @@ build/image/src/.dummy: build/image/base/.dummy $(PROJECT_FILES)
202
195
build/image/ccenv/.dummy : build/image/src/.dummy build/image/ccenv/bin/protoc-gen-go build/image/ccenv/bin/chaintool Makefile
203
196
@echo " Building docker ccenv-image"
204
197
@cat images/ccenv/Dockerfile.in \
198
+ | sed -e ' s/_BASE_TAG_/$(BASE_DOCKER_TAG)/g' \
205
199
| sed -e ' s/_TAG_/$(DOCKER_TAG)/g' \
206
200
> $(@D ) /Dockerfile
207
201
docker build -t $(PROJECT_NAME ) -ccenv $(@D )
@@ -216,7 +210,10 @@ build/image/ccenv/.dummy: build/image/src/.dummy build/image/ccenv/bin/protoc-ge
216
210
build/image/javaenv/.dummy : Makefile $(JAVASHIM_DEPS )
217
211
@echo " Building docker javaenv-image"
218
212
@mkdir -p $(@D )
219
- @cat images/javaenv/Dockerfile.in > $(@D ) /Dockerfile
213
+ @cat images/javaenv/Dockerfile.in \
214
+ | sed -e ' s/_BASE_TAG_/$(BASE_DOCKER_TAG)/g' \
215
+ | sed -e ' s/_TAG_/$(DOCKER_TAG)/g' \
216
+ > $(@D ) /Dockerfile
220
217
@git ls-files core/chaincode/shim/java | tar -jcT - > $(@D ) /javashimsrc.tar.bz2
221
218
@git ls-files protos core/chaincode/shim/table.proto settings.gradle | tar -jcT - > $(@D ) /protos.tar.bz2
222
219
docker build -t $(PROJECT_NAME ) -javaenv $(@D )
@@ -229,6 +226,7 @@ build/image/%/.dummy: build/image/src/.dummy build/docker/bin/%
229
226
@echo " Building docker $( TARGET) -image"
230
227
@mkdir -p $(@D ) /bin
231
228
@cat images/app/Dockerfile.in \
229
+ | sed -e ' s/_BASE_TAG_/$(BASE_DOCKER_TAG)/g' \
232
230
| sed -e ' s/_TAG_/$(DOCKER_TAG)/g' \
233
231
> $(@D ) /Dockerfile
234
232
cp build/docker/bin/$(TARGET ) $(@D ) /bin
@@ -240,10 +238,6 @@ build/image/%/.dummy: build/image/src/.dummy build/docker/bin/%
240
238
protos : gotools
241
239
./devenv/compile_protos.sh
242
240
243
- base-image-clean :
244
- -docker rmi -f $(PROJECT_NAME ) -baseimage
245
- -@rm -rf build/image/base || :
246
-
247
241
src-image-clean : ccenv-image-clean peer-image-clean membersrvc-image-clean
248
242
249
243
% -image-clean :
0 commit comments