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