From 38dae66775e6e6e38b24eaee6dad28a6d31cd4db Mon Sep 17 00:00:00 2001 From: Nicolai Ommer Date: Sun, 16 Apr 2023 22:34:28 +0200 Subject: [PATCH] Build all commands --- .circleci/config.yml | 6 +++--- cmd/ssl-log-player/Dockerfile => Dockerfile | 9 ++++++--- Makefile | 13 ++++++------- cmd/ssl-auto-recorder/Dockerfile | 13 ------------- 4 files changed, 15 insertions(+), 26 deletions(-) rename cmd/ssl-log-player/Dockerfile => Dockerfile (53%) delete mode 100644 cmd/ssl-auto-recorder/Dockerfile diff --git a/.circleci/config.yml b/.circleci/config.yml index 57c06bf..52da77b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2.1 parameters: cmds: type: string - default: "ssl-auto-recorder ssl-log-player" + default: "ssl-auto-recorder ssl-log-converter ssl-log-cutter ssl-log-indexer ssl-log-player ssl-log-recorder ssl-log-stats ssl-vision-tracker-client" jobs: test_go: @@ -67,7 +67,7 @@ jobs: version: 20.10.18 - run: | for cmd in << pipeline.parameters.cmds >>; do - docker build -f ./cmd/${cmd}/Dockerfile -t robocupssl/${cmd}:latest . + docker build --build-arg cmd=${cmd} -t robocupssl/${cmd}:latest . done publish_docker: @@ -83,7 +83,7 @@ jobs: TAG=${CIRCLE_TAG:1} TAG=${TAG:-latest} for cmd in << pipeline.parameters.cmds >>; do - docker build -f ./cmd/${cmd}/Dockerfile -t robocupssl/${cmd}:${TAG} . + docker build --build-arg cmd=${cmd} -t robocupssl/${cmd}:${TAG} . docker login -u "${DOCKER_HUB_USERNAME}" -p "${DOCKER_HUB_PASSWORD}" docker push robocupssl/${cmd}:${TAG} done diff --git a/cmd/ssl-log-player/Dockerfile b/Dockerfile similarity index 53% rename from cmd/ssl-log-player/Dockerfile rename to Dockerfile index f4c646f..bf77059 100644 --- a/cmd/ssl-log-player/Dockerfile +++ b/Dockerfile @@ -1,13 +1,16 @@ FROM golang:1.20-alpine AS build_go +ARG cmd WORKDIR work COPY . . -RUN go install ./cmd/ssl-log-player +RUN go install ./cmd/${cmd} # Start fresh from a smaller image FROM alpine:3 -COPY --from=build_go /go/bin/ssl-log-player /app/ssl-log-player +ARG cmd +COPY --from=build_go /go/bin/${cmd} /app/${cmd} WORKDIR /data RUN chown 1000: /data USER 1000 -ENTRYPOINT ["/app/ssl-log-player"] +ENV COMMAND="/app/${cmd}" +ENTRYPOINT "${COMMAND}" CMD [] diff --git a/Makefile b/Makefile index f99d7df..6783143 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,13 @@ -.PHONY: all docker docker-ssl-auto-recorder docker-ssl-log-player test install proto +CMDS = ssl-auto-recorder ssl-log-converter ssl-log-cutter ssl-log-indexer ssl-log-player ssl-log-recorder ssl-log-stats ssl-vision-tracker-client +DOCKER_TARGETS = $(addprefix docker-, $(CMDS)) +.PHONY: all docker test install proto $(DOCKER_TARGETS) all: install docker -docker: docker-ssl-auto-recorder docker-ssl-log-player +docker: $(DOCKER_TARGETS) -docker-ssl-auto-recorder: - docker build -f ./cmd/ssl-auto-recorder/Dockerfile -t ssl-auto-recorder:latest . - -docker-ssl-log-player: - docker build -f ./cmd/ssl-log-player/Dockerfile -t ssl-log-player:latest . +$(DOCKER_TARGETS): docker-%: + docker build --build-arg cmd=$* -t $*:latest . test: go test ./... diff --git a/cmd/ssl-auto-recorder/Dockerfile b/cmd/ssl-auto-recorder/Dockerfile deleted file mode 100644 index faecdcc..0000000 --- a/cmd/ssl-auto-recorder/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM golang:1.20-alpine AS build_go -WORKDIR work -COPY . . -RUN go install ./cmd/ssl-auto-recorder - -# Start fresh from a smaller image -FROM alpine:3 -COPY --from=build_go /go/bin/ssl-auto-recorder /app/ssl-auto-recorder -WORKDIR /data -RUN chown 1000: /data -USER 1000 -ENTRYPOINT ["/app/ssl-auto-recorder"] -CMD []