Build Go code in Docker
This commit is contained in:
@@ -1,6 +1,3 @@
|
||||
charts
|
||||
cmd
|
||||
downloads
|
||||
pkg
|
||||
test
|
||||
vendor
|
||||
|
||||
@@ -12,6 +12,22 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# Build stage to build Go code
|
||||
FROM golang:1.9 as builder
|
||||
WORKDIR /go/src/github.com/ibm-messaging/mq-container/
|
||||
COPY cmd/ ./cmd
|
||||
COPY pkg/ ./pkg
|
||||
COPY vendor/ ./vendor
|
||||
RUN GOOS=linux go build ./cmd/runmqserver/
|
||||
RUN GOOS=linux go build ./cmd/chkmqready/
|
||||
RUN GOOS=linux go build ./cmd/chkmqhealthy/
|
||||
|
||||
# Build stage to run Go unit tests
|
||||
FROM golang:1.9 as tester
|
||||
COPY pkg/ ./pkg
|
||||
RUN cd pkg/name && GOOS=linux go test
|
||||
|
||||
# Main build stage, to build MQ image
|
||||
FROM ubuntu:16.04
|
||||
|
||||
# The URL to download the MQ installer from in tar.gz format
|
||||
@@ -28,8 +44,8 @@ RUN chmod u+x /usr/local/bin/install-mq.sh \
|
||||
&& sleep 1 \
|
||||
&& install-mq.sh
|
||||
|
||||
COPY build/runmqserver /usr/local/bin/
|
||||
COPY build/chkmq* /usr/local/bin/
|
||||
COPY --from=builder /go/src/github.com/ibm-messaging/mq-container/runmqserver /usr/local/bin/
|
||||
COPY --from=builder /go/src/github.com/ibm-messaging/mq-container/chkmq* /usr/local/bin/
|
||||
COPY NOTICES.txt /opt/mqm/licenses/notices-container.txt
|
||||
|
||||
RUN chmod +x /usr/local/bin/runmqserver \
|
||||
|
||||
23
Makefile
23
Makefile
@@ -63,43 +63,28 @@ deps:
|
||||
cd test/docker && dep ensure -vendor-only
|
||||
cd test/kubernetes && dep ensure -vendor-only
|
||||
|
||||
build/runmqserver:
|
||||
mkdir -p build
|
||||
cd build; GOOS=linux go build ../cmd/runmqserver/
|
||||
|
||||
build/chkmqready:
|
||||
mkdir -p build
|
||||
cd build; GOOS=linux go build ../cmd/chkmqready/
|
||||
|
||||
build/chkmqhealthy:
|
||||
mkdir -p build
|
||||
cd build; GOOS=linux go build ../cmd/chkmqhealthy/
|
||||
|
||||
.PHONY: build
|
||||
build: build/runmqserver build/chkmqready build/chkmqhealthy
|
||||
|
||||
.PHONY: build-cov
|
||||
build-cov:
|
||||
mkdir -p build
|
||||
cd build; go test -c -covermode=count ../cmd/runmqserver
|
||||
|
||||
.PHONY: test-advancedserver
|
||||
test-advancedserver: build
|
||||
test-advancedserver:
|
||||
cd pkg/name && go test
|
||||
cd test/docker && TEST_IMAGE=$(DOCKER_FULL_ADVANCEDSERVER) go test $(TEST_OPTS_DOCKER)
|
||||
|
||||
.PHONY: test-devserver
|
||||
test-devserver: build
|
||||
test-devserver:
|
||||
$(info $(SPACER)$(shell printf $(TITLE)"Test $(DOCKER_FULL_DEVSERVER)"$(END)))
|
||||
cd pkg/name && go test
|
||||
cd test/docker && TEST_IMAGE=$(DOCKER_FULL_DEVSERVER) go test
|
||||
|
||||
.PHONY: test-kubernetes-devserver
|
||||
test-kubernetes-devserver: build
|
||||
test-kubernetes-devserver:
|
||||
$(call test-kubernetes,$(DOCKER_REPO_DEVSERVER),$(DOCKER_TAG),"../../charts/ibm-mqadvanced-server-dev")
|
||||
|
||||
.PHONY: test-kubernetes-advancedserver
|
||||
test-kubernetes-advancedserver: build
|
||||
test-kubernetes-advancedserver:
|
||||
$(call test-kubernetes,$(DOCKER_REPO_ADVANCEDSERVER),$(DOCKER_TAG),"../../charts/ibm-mqadvanced-server-prod")
|
||||
|
||||
define test-kubernetes
|
||||
|
||||
Reference in New Issue
Block a user