From 976873f08c17318489ba332bafe20cdae178ce5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20=C5=9Awi=C4=85tek?= Date: Mon, 26 Jun 2023 15:39:08 +0200 Subject: [PATCH] feat(build): make dev builds identical to release builds --- Dockerfile_dev | 37 ------------------------------------- Makefile | 36 ++++++++++++++---------------------- 2 files changed, 14 insertions(+), 59 deletions(-) delete mode 100644 Dockerfile_dev diff --git a/Dockerfile_dev b/Dockerfile_dev deleted file mode 100644 index 7c8c23b5e6..0000000000 --- a/Dockerfile_dev +++ /dev/null @@ -1,37 +0,0 @@ -FROM alpine:3.18.2 as otelcol -COPY otelcol-sumo / -# This shouldn't be necessary but sometimes we end up with execution bit not set. -# ref: https://github.com/open-telemetry/opentelemetry-collector/issues/1317 -RUN chmod 755 /otelcol-sumo - -FROM alpine:3.18.2 as certs -RUN apk --update add ca-certificates - -FROM alpine:3.18.2 as directories -RUN mkdir /etc/otel/ - -FROM debian:11.7 as systemd -RUN apt update && apt install -y systemd -# prepare package with journald and it's dependencies keeping original paths -# h stands for dereference of symbolic links -RUN tar czhf journalctl.tar.gz /bin/journalctl $(ldd /bin/journalctl | grep -oP "\/.*? ") - -FROM golang:1.20.5 -ARG BUILD_TAG=latest -ENV TAG $BUILD_TAG -ARG USER_UID=10001 -USER ${USER_UID} -ENV HOME /etc/otel/ - -COPY --from=certs /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt -COPY --from=otelcol /otelcol-sumo /otelcol-sumo -COPY --from=directories --chown=${USER_UID}:${USER_UID} /etc/otel/ /etc/otel/ - -# copy and extract journald with dependencies -COPY --from=systemd --chown=${USER_UID}:${USER_UID} /journalctl.tar.gz /journalctl.tar.gz -USER root -RUN tar xf /journalctl.tar.gz --directory / && rm /journalctl.tar.gz -USER ${USER_UID} - -ENTRYPOINT ["/otelcol-sumo"] -CMD ["--config", "/etc/otel/config.yaml"] diff --git a/Makefile b/Makefile index 8d2f4859c4..e7e91a7be3 100644 --- a/Makefile +++ b/Makefile @@ -228,6 +228,7 @@ IMAGE_NAME_DEV = sumologic-otel-collector-dev OPENSOURCE_ECR_URL = public.ecr.aws/sumologic OPENSOURCE_REPO_URL = $(OPENSOURCE_ECR_URL)/$(IMAGE_NAME) OPENSOURCE_REPO_URL_DEV = $(OPENSOURCE_ECR_URL)/$(IMAGE_NAME_DEV) +REPO_URL = $(OPENSOURCE_REPO_URL) .PHONY: _build _build: @@ -248,42 +249,33 @@ build-container-local: .PHONY: build-container-dev build-container-dev: $(MAKE) _build \ - IMG="$(IMAGE_NAME)-dev" \ - DOCKERFILE="Dockerfile_dev" \ + IMG="$(IMAGE_NAME_DEV)" \ TAG="$(BUILD_TAG)" #------------------------------------------------------------------------------- # dev -.PHONY: _build-container-multiplatform-dev -_build-container-multiplatform-dev: - BUILD_TAG="$(BUILD_TAG)" \ - REPO_URL="$(OPENSOURCE_REPO_URL_DEV)" \ - DOCKERFILE="Dockerfile_dev" \ - PLATFORM="$(PLATFORM)" \ - ./ci/build-push-multiplatform.sh $(PUSH) - .PHONY: build-container-multiplatform-dev -build-container-multiplatform-dev: - $(MAKE) _build-container-multiplatform-dev PUSH= +build-container-multiplatform-dev: REPO_URL = "$(OPENSOURCE_REPO_URL_DEV)" +build-container-multiplatform-dev: build-container-multiplatform -.PHONY: build-container-multiplatform-dev -build-push-container-multiplatform-dev: - $(MAKE) _build-container-multiplatform-dev PUSH=--push +.PHONY: build-push-container-multiplatform-dev +build-push-container-multiplatform-dev: REPO_URL = "$(OPENSOURCE_REPO_URL_DEV)" +build-push-container-multiplatform-dev: build-push-container-multiplatform .PHONY: push-container-manifest-dev -push-container-manifest-dev: - BUILD_TAG="$(BUILD_TAG)" \ - REPO_URL="$(OPENSOURCE_REPO_URL_DEV)" \ - ./ci/push_docker_multiplatform_manifest.sh $(PLATFORMS) +push-container-manifest-dev: REPO_URL="$(OPENSOURCE_REPO_URL_DEV)" +push-container-manifest-dev: push-container-manifest + +#------------------------------------------------------------------------------- # release .PHONY: _build-container-multiplatform _build-container-multiplatform: BUILD_TAG="$(BUILD_TAG)" \ - REPO_URL="$(OPENSOURCE_REPO_URL)" \ + REPO_URL="$(REPO_URL)" \ DOCKERFILE="Dockerfile" \ PLATFORM="$(PLATFORM)" \ ./ci/build-push-multiplatform.sh $(PUSH) @@ -298,12 +290,12 @@ build-push-container-multiplatform: .PHONY: test-built-image test-built-image: - docker run --rm "$(OPENSOURCE_REPO_URL):$(BUILD_TAG)" --version + docker run --rm "$(REPO_URL):$(BUILD_TAG)" --version .PHONY: push-container-manifest push-container-manifest: BUILD_TAG="$(BUILD_TAG)" \ - REPO_URL="$(OPENSOURCE_REPO_URL)" \ + REPO_URL="$(REPO_URL)" \ ./ci/push_docker_multiplatform_manifest.sh $(PLATFORMS) #-------------------------------------------------------------------------------