-
Notifications
You must be signed in to change notification settings - Fork 707
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Address FAB-1454 add docker image for fabric-cop
Add creation of docker image for fabric-cop, essentially transposed from fabric docker image build process. Change-Id: Id26e53e705e289515e9ce28af3df534123f463de Signed-off-by: Christopher Ferris <[email protected]>
- Loading branch information
1 parent
053b807
commit 4526770
Showing
6 changed files
with
226 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
bin | ||
build | ||
cli/cop/cop | ||
testdata/client.json | ||
*.csr | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
BUSYBOX_VER=1.25.1 | ||
BUSYBOX_URL=https://www.busybox.net/downloads/busybox-$(BUSYBOX_VER).tar.bz2 | ||
|
||
OBJDIR=build/busybox-$(BUSYBOX_VER) | ||
|
||
all: $(OBJDIR)/busybox | ||
|
||
install: $(BINDIR)/busybox | ||
|
||
$(BINDIR)/busybox: $(OBJDIR)/busybox | ||
mkdir -p $(@D) | ||
cp $< $@ | ||
|
||
$(OBJDIR)/.source: | ||
mkdir -p $(@D) | ||
curl -L $(BUSYBOX_URL) | (cd $(@D); tar --strip-components=1 -jx) | ||
touch $@ | ||
|
||
$(OBJDIR)/.config: $(OBJDIR)/.source | ||
make -C $(@D) defconfig | ||
|
||
$(OBJDIR)/busybox: Makefile $(OBJDIR)/.config | ||
make -C $(@D) -l 2.5 -j all LDFLAGS=-static | ||
|
||
clean: | ||
-rm -rf $(OBJDIR) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
ifneq ($(shell uname),Darwin) | ||
DOCKER_RUN_FLAGS=--user=$(shell id -u) | ||
endif | ||
|
||
ifneq ($(http_proxy),) | ||
DOCKER_BUILD_FLAGS+=--build-arg http_proxy=$(http_proxy) | ||
DOCKER_RUN_FLAGS+=-e http_proxy=$(http_proxy) | ||
endif | ||
ifneq ($(https_proxy),) | ||
DOCKER_BUILD_FLAGS+=--build-arg https_proxy=$(https_proxy) | ||
DOCKER_RUN_FLAGS+=-e https_proxy=$(https_proxy) | ||
endif | ||
ifneq ($(HTTP_PROXY),) | ||
DOCKER_BUILD_FLAGS+=--build-arg HTTP_PROXY=$(HTTP_PROXY) | ||
DOCKER_RUN_FLAGS+=-e HTTP_PROXY=$(HTTP_PROXY) | ||
endif | ||
ifneq ($(HTTPS_PROXY),) | ||
DOCKER_BUILD_FLAGS+=--build-arg HTTPS_PROXY=$(HTTPS_PROXY) | ||
DOCKER_RUN_FLAGS+=-e HTTPS_PROXY=$(HTTPS_PROXY) | ||
endif | ||
ifneq ($(no_proxy),) | ||
DOCKER_BUILD_FLAGS+=--build-arg no_proxy=$(no_proxy) | ||
DOCKER_RUN_FLAGS+=-e no_proxy=$(no_proxy) | ||
endif | ||
ifneq ($(NO_PROXY),) | ||
DOCKER_BUILD_FLAGS+=--build-arg NO_PROXY=$(NO_PROXY) | ||
DOCKER_RUN_FLAGS+=-e NO_PROXY=$(NO_PROXY) | ||
endif | ||
|
||
DRUN = docker run -i --rm $(DOCKER_RUN_FLAGS) \ | ||
-v $(abspath .):/opt/gopath/src/$(PKGNAME) \ | ||
-w /opt/gopath/src/$(PKGNAME) | ||
|
||
DBUILD = docker build $(DOCKER_BUILD_FLAGS) | ||
|
||
DOCKER_TAG=$(ARCH)-$(PROJECT_VERSION) | ||
BASE_DOCKER_TAG=$(ARCH)-$(BASEIMAGE_RELEASE) | ||
|
||
DOCKER_GO_LDFLAGS += $(GO_LDFLAGS) | ||
DOCKER_GO_LDFLAGS += -linkmode external -extldflags '-static -lpthread' | ||
|
||
# | ||
# What is a .dummy file? | ||
# | ||
# Make is designed to work with files. It uses the presence (or lack thereof) | ||
# and timestamps of files when deciding if a given target needs to be rebuilt. | ||
# Docker containers throw a wrench into the works because the output of docker | ||
# builds do not translate into standard files that makefile rules can evaluate. | ||
# Therefore, we have to fake it. We do this by constructioning our rules such | ||
# as | ||
# my-docker-target/.dummy: | ||
# docker build ... | ||
# touch $@ | ||
# | ||
# If the docker-build succeeds, the touch operation creates/updates the .dummy | ||
# file. If it fails, the touch command never runs. This means the .dummy | ||
# file follows relatively 1:1 with the underlying container. | ||
# | ||
# This isn't perfect, however. For instance, someone could delete a docker | ||
# container using docker-rmi outside of the build, and make would be fooled | ||
# into thinking the dependency is statisfied when it really isn't. This is | ||
# our closest approximation we can come up with. | ||
# | ||
# As an aside, also note that we incorporate the version number in the .dummy | ||
# file to differentiate different tags to fix FAB-1145 | ||
# | ||
DUMMY = .dummy-$(DOCKER_TAG) | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
FROM hyperledger/fabric-cop-runtime:_TAG_ | ||
ENV COP_HOME /etc/hyperledger/fabric-cop | ||
RUN mkdir -p /etc/hyperledger/fabric-cop | ||
COPY payload/cop /usr/local/bin | ||
EXPOSE 8888 | ||
CMD cop |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
FROM scratch | ||
COPY payload/busybox /bin/busybox | ||
RUN ["/bin/busybox", "mkdir", "-p", "/usr/bin", "/sbin", "/usr/sbin"] | ||
RUN ["/bin/busybox", "--install"] | ||
RUN mkdir -p /usr/local/bin | ||
ENV PATH=$PATH:/usr/local/bin |