From 73255a08e06b2e3a17f09780d36f26baf0d39fc1 Mon Sep 17 00:00:00 2001 From: Jon Schlueter Date: Wed, 26 Aug 2020 09:51:27 -0400 Subject: [PATCH 1/2] small tweaks to Dockerfile.rhel --- build/Dockerfile.rhel | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/build/Dockerfile.rhel b/build/Dockerfile.rhel index e0a71f4..c267b21 100644 --- a/build/Dockerfile.rhel +++ b/build/Dockerfile.rhel @@ -1,26 +1,32 @@ FROM openshift/golang-builder:1.13 AS build-env # Intended to build in OSBS using cachito external sources bundle +ARG REMOTE_SOURCE +ARG REMOTE_SOURCE_DIR +ARG REMOTE_SOURCE_SUBDIR=app +ARG DEST_ROOT=/dest-root COPY $REMOTE_SOURCE $REMOTE_SOURCE_DIR -WORKDIR $REMOTE_SOURCE_DIR/app -RUN mkdir -p /dest-root/usr/local/bin +WORKDIR $REMOTE_SOURCE_DIR/$REMOTE_SOURCE_SUBDIR +RUN mkdir -p $DEST_ROOT/usr/local/bin -RUN go build -mod readonly -v -a -ldflags '-extldflags "-static"' -o /dest-root/csv-generator tools/csv-generator.go -RUN go build -mod readonly -v -a -ldflags '-extldflags "-static"' -o /dest-root/operator cmd/manager/main.go +RUN go build -mod readonly -v -a -ldflags '-extldflags "-static"' -o $DEST_ROOT/csv-generator tools/csv-generator.go +RUN go build -mod readonly -v -a -ldflags '-extldflags "-static"' -o $DEST_ROOT/operator cmd/manager/main.go -RUN cp -r build/bin/* /dest-root/usr/local/bin -RUN cp -r templates /dest-root/templates -RUN cp -r deploy/crds /dest-root/crds -RUN cp -r bindata /dest-root/bindata +RUN cp -r build/bin/* $DEST_ROOT/usr/local/bin +RUN cp -r templates $DEST_ROOT/templates +RUN cp -r deploy/crds $DEST_ROOT/crds +RUN cp -r bindata $DEST_ROOT/bindata -FROM ubi8-minimal:8.1-released +FROM registry.redhat.io/ubi8/ubi-minimal:latest +ARG DEST_ROOT=/dest-root LABEL com.redhat.component="compute-node-operator-container" \ name="compute-node-operator" \ version="1.0" \ summary="Compute Node Operator" \ - io.k8s.name="compute-node-operator" \ - io.k8s.description="This image includes the compute-node-operator" + io.k8s.display-name="compute-node-operator" \ + io.k8s.description="This image contains the compute-node-operator" \ + io.openshift.tags="cn-openstack openstack" ENV OPERATOR=/usr/local/bin/compute-node-operator \ USER_UID=1001 \ @@ -29,20 +35,20 @@ ENV OPERATOR=/usr/local/bin/compute-node-operator \ OPERATOR_BUNDLE=/usr/share/compute-node-operator/bundle/ # install operator binary -COPY --from=build-env /dest-root/operator ${OPERATOR} -COPY --from=build-env /dest-root/csv-generator /usr/local/bin/csv-generator +COPY --from=build-env $DEST_ROOT/operator ${OPERATOR} +COPY --from=build-env $DEST_ROOT/csv-generator /usr/local/bin/csv-generator -COPY --from=build-env /dest-root/usr/local/bin/* /usr/local/bin -COPY --from=build-env /dest-root/bindata /bindata +COPY --from=build-env $DEST_ROOT/usr/local/bin/* /usr/local/bin +COPY --from=build-env $DEST_ROOT/bindata /bindata RUN /usr/local/bin/user_setup # install our templates RUN mkdir -p ${OPERATOR_TEMPLATES} -COPY --from=build-env /dest-root/templates ${OPERATOR_TEMPLATES} +COPY --from=build-env $DEST_ROOT/templates ${OPERATOR_TEMPLATES} # install CRDs and required roles, services, etc RUN mkdir -p ${OPERATOR_BUNDLE} -COPY --from=build-env /dest-root/crds/*crd.yaml ${OPERATOR_BUNDLE} +COPY --from=build-env $DEST_ROOT/crds/*crd.yaml ${OPERATOR_BUNDLE} ENTRYPOINT ["/usr/local/bin/entrypoint"] From 63b8feee5460001f8e343a8f176b5c0fb1c47ce8 Mon Sep 17 00:00:00 2001 From: Jon Schlueter Date: Mon, 31 Aug 2020 12:31:29 -0400 Subject: [PATCH 2/2] Update to latest style --- build/Dockerfile.rhel | 48 ++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/build/Dockerfile.rhel b/build/Dockerfile.rhel index c267b21..71f73a8 100644 --- a/build/Dockerfile.rhel +++ b/build/Dockerfile.rhel @@ -1,23 +1,33 @@ -FROM openshift/golang-builder:1.13 AS build-env +# golang-builder is used in OSBS build +ARG GOLANG_BUILDER=openshift/golang-builder:1.13 +ARG OPERATOR_BASE_IMAGE=registry.redhat.io/ubi8/ubi-minimal:latest + +FROM ${GOLANG_BUILDER} AS builder + # Intended to build in OSBS using cachito external sources bundle -ARG REMOTE_SOURCE +ARG REMOTE_SOURCE=. ARG REMOTE_SOURCE_DIR ARG REMOTE_SOURCE_SUBDIR=app ARG DEST_ROOT=/dest-root +ARG GO_BUILD_EXTRA_ARGS="-mod readonly -v " COPY $REMOTE_SOURCE $REMOTE_SOURCE_DIR -WORKDIR $REMOTE_SOURCE_DIR/$REMOTE_SOURCE_SUBDIR -RUN mkdir -p $DEST_ROOT/usr/local/bin +WORKDIR ${REMOTE_SOURCE_DIR}/${REMOTE_SOURCE_SUBDIR} + +RUN mkdir -p ${DEST_ROOT}/usr/local/bin/ -RUN go build -mod readonly -v -a -ldflags '-extldflags "-static"' -o $DEST_ROOT/csv-generator tools/csv-generator.go -RUN go build -mod readonly -v -a -ldflags '-extldflags "-static"' -o $DEST_ROOT/operator cmd/manager/main.go +RUN CGO_ENABLED=0 GO111MODULE=on go build ${GO_BUILD_EXTRA_ARGS} -a -o ${DEST_ROOT}/usr/local/bin/manager cmd/manager/main.go +RUN CGO_ENABLED=0 GO111MODULE=on go build ${GO_BUILD_EXTRA_ARGS} -a -o ${DEST_ROOT}/usr/local/bin/csv-generator tools/csv-generator.go -RUN cp -r build/bin/* $DEST_ROOT/usr/local/bin -RUN cp -r templates $DEST_ROOT/templates -RUN cp -r deploy/crds $DEST_ROOT/crds +RUN cp -r build/bin/* ${DEST_ROOT}/usr/local/bin/ +RUN cp -r templates ${DEST_ROOT}/templates + +# prep the bundle +RUN mkdir -p ${DEST_ROOT}/bundle +RUN cp -r deploy/crds ${DEST_ROOT}/bundle RUN cp -r bindata $DEST_ROOT/bindata -FROM registry.redhat.io/ubi8/ubi-minimal:latest +FROM ${OPERATOR_BASE_IMAGE} ARG DEST_ROOT=/dest-root LABEL com.redhat.component="compute-node-operator-container" \ @@ -35,21 +45,21 @@ ENV OPERATOR=/usr/local/bin/compute-node-operator \ OPERATOR_BUNDLE=/usr/share/compute-node-operator/bundle/ # install operator binary -COPY --from=build-env $DEST_ROOT/operator ${OPERATOR} -COPY --from=build-env $DEST_ROOT/csv-generator /usr/local/bin/csv-generator - -COPY --from=build-env $DEST_ROOT/usr/local/bin/* /usr/local/bin -COPY --from=build-env $DEST_ROOT/bindata /bindata -RUN /usr/local/bin/user_setup +COPY --from=builder ${DEST_ROOT}/usr/local/bin/* /usr/local/bin/ +COPY --from=builder $DEST_ROOT/bindata /bindata # install our templates RUN mkdir -p ${OPERATOR_TEMPLATES} -COPY --from=build-env $DEST_ROOT/templates ${OPERATOR_TEMPLATES} +COPY --from=builder ${DEST_ROOT}/templates ${OPERATOR_TEMPLATES} # install CRDs and required roles, services, etc RUN mkdir -p ${OPERATOR_BUNDLE} -COPY --from=build-env $DEST_ROOT/crds/*crd.yaml ${OPERATOR_BUNDLE} +COPY --from=builder ${DEST_ROOT}/bundle/* ${OPERATOR_BUNDLE} -ENTRYPOINT ["/usr/local/bin/entrypoint"] +WORKDIR / +# user setup +RUN /usr/local/bin/user_setup USER ${USER_UID} + +ENTRYPOINT ["/usr/local/bin/entrypoint"]