# © Copyright IBM Corporation 2018
#
# Licensed 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.

ARG BASE_IMAGE=mq-sdk:9.0.5.0-x86_64-ubuntu-16.04

FROM $BASE_IMAGE

ENV GO_VERSION=1.10

# Install the Go compiler and Git
RUN export DEBIAN_FRONTEND=noninteractive \
  && bash -c 'source /etc/os-release; \
     echo "deb http://archive.ubuntu.com/ubuntu/ ${UBUNTU_CODENAME} main restricted" > /etc/apt/sources.list; \
     echo "deb http://archive.ubuntu.com/ubuntu/ ${UBUNTU_CODENAME}-updates main restricted" >> /etc/apt/sources.list; \
     echo "deb http://archive.ubuntu.com/ubuntu/ ${UBUNTU_CODENAME}-backports main restricted universe" >> /etc/apt/sources.list;' \
  && apt-get update \
  && apt-get install -y --no-install-recommends golang-${GO_VERSION} git ca-certificates \
  && rm -rf /var/lib/apt/lists/*

ENV PATH="${PATH}:/usr/lib/go-${GO_VERSION}/bin:/go/bin" \
    CGO_CFLAGS="-I/opt/mqm/inc/"                         \
    CGO_LDFLAGS_ALLOW="-Wl,-rpath.*"                     \
    GOPATH="/go"                                         \
    OUTPUT_DIR="${OUTPUT_DIR}"

RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" "$GOPATH/pkg" \
  && chmod -R 777 "$GOPATH"                            \
  && mkdir -p "$GOPATH/src/github.com/ibm-messaging/mq-golang"

WORKDIR $GOPATH/src/github.com/ibm-messaging/mq-golang

COPY ./ibmmq ibmmq
COPY ./mqmetric mqmetric

RUN go build ./ibmmq     \
  && go test ./ibmmq     \
  && go build ./mqmetric \
  && go test ./mqmetric
