diff --git a/Makefile b/Makefile index bd54c546..22ff0de3 100644 --- a/Makefile +++ b/Makefile @@ -121,6 +121,8 @@ dockerbuild: ## Runs docker build $(call ndef, GITHUB_AUTH_TOKEN) DOCKER_BUILDKIT=1 docker build . --file Dockerfile --tag $(IMAGE_NAME) DOCKER_BUILDKIT=1 docker build . --file cron/Dockerfile --tag $(IMAGE_NAME)cron + DOCKER_BUILDKIT=1 docker build . --file cron/controller/Dockerfile --tag $(IMAGE_NAME)-batch-controller + DOCKER_BUILDKIT=1 docker build . --file cron/worker/Dockerfile --tag $(IMAGE_NAME)-batch-worker ############################################################################### ################################# make test ################################### diff --git a/cron/controller/Dockerfile b/cron/controller/Dockerfile new file mode 100644 index 00000000..7c3499d7 --- /dev/null +++ b/cron/controller/Dockerfile @@ -0,0 +1,32 @@ +# syntax = docker/dockerfile:1-experimental +# Copyright 2020 Security Scorecard Authors +# +# 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. + + +FROM golang:1.16.4@sha256:6f0b0a314b158ff6caf8f12d7f6f3a966500ec6afb533e986eca7375e2f7560f AS base +WORKDIR /src +ENV CGO_ENABLED=0 +COPY go.* ./ +RUN go mod download +COPY . ./ + +FROM base AS pubsub +ARG TARGETOS +ARG TARGETARCH +RUN CGO_ENABLED=0 make build-pubsub + +FROM gcr.io/google.com/cloudsdktool/cloud-sdk:slim@sha256:acb34ca33bc83255110d16a749b0da618a96fcc481348ecfe614b3edcabdeaa6 +COPY ./cron/config/projects.csv /cron/config/projects.csv +COPY --from=pubsub /src/cron/controller/controller ./cron/controller/controller +ENTRYPOINT ["/cron/controller/controller"] diff --git a/cron/worker/Dockerfile b/cron/worker/Dockerfile new file mode 100644 index 00000000..008163a1 --- /dev/null +++ b/cron/worker/Dockerfile @@ -0,0 +1,31 @@ +# syntax = docker/dockerfile:1-experimental +# Copyright 2020 Security Scorecard Authors +# +# 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. + + +FROM golang:1.16.4@sha256:6f0b0a314b158ff6caf8f12d7f6f3a966500ec6afb533e986eca7375e2f7560f AS base +WORKDIR /src +ENV CGO_ENABLED=0 +COPY go.* ./ +RUN go mod download +COPY . ./ + +FROM base AS pubsub +ARG TARGETOS +ARG TARGETARCH +RUN CGO_ENABLED=0 make build-pubsub + +FROM gcr.io/google.com/cloudsdktool/cloud-sdk:slim@sha256:acb34ca33bc83255110d16a749b0da618a96fcc481348ecfe614b3edcabdeaa6 +COPY --from=pubsub /src/cron/worker/worker ./cron/worker/worker +ENTRYPOINT ["/cron/worker/worker"]