mirror of
https://github.com/gravitational/teleport.git
synced 2026-11-04 00:54:46 +08:00
* Added multiarch build support for teleport oss, ent, and fips * Exported image/imageTag types * Resigned dronegen * Removed remainder of testing changes * Removed changes to submodules * Reverted dockerfile-fips change * FIxed docs wording * Un-exported most constants * Removed teleport.e makefile deb call * Moved "sed | cut magic" to files * Re-added `mkdir -pv /go/cache` to push.go * Command deterministic order fix * Added staging-only tag pipeline * Moved PR to teleport operator to minimize potential issue impact * Updated promote to pull and push without build * Made cron triggers not affect canonical tags * Added check for pre-existing tags on immutable CRs * Added immutability check to manifests * Updated staging ecr to only apply $TIMESTAMP tag on cron triggers * Updated triggerinfo struct to use a triggerflag struct * Fixed makefile after git mistake * Makefile fix * PR fixes * Moved internal tools Go version to constant * Separated container images gofile into multiple files * Moved testing comment * Added licenses * Reorganized and added docs for container images * Moved const to correct file * Tag trigger logic test * Testing specific fix * Moved testing to v10.3.2 * Make semver dirs * Refactored local registry name/socket * Merged previous dockerfile changes * Added TARGETOS TARGETARCH args * Updatd tag to testing tag * Promotion logic test * Promotion fixes * Testing specific fix * Removed prerelease check for testing * Added staging login commands to promote * Fixed missing credentials on promotion pull * Rerun tag test with new "full" semver * Made staging builds only publish full semver * Added semver logging command * Empty commit to trigger Drone * Promotion test * Fixed preceeding v on promote pull * Empty commit to trigger Drone * Re-enabled verify not prerelease step on promote * Cron trigger test * Testing fix * Testing fix 2 * Added sleep timer on docker buildx build * Testing cleanup
45 lines
1.7 KiB
Docker
45 lines
1.7 KiB
Docker
ARG BUILDBOX
|
|
# BUILDPLATFORM is provided by Docker/buildx
|
|
FROM --platform=$BUILDPLATFORM $BUILDBOX as builder
|
|
|
|
WORKDIR /go/src/github.com/gravitational/teleport
|
|
|
|
# Copy the Go Modules manifests
|
|
COPY go.mod go.mod
|
|
COPY go.sum go.sum
|
|
|
|
# We have to copy the API before `go mod download` because go.mod has a replace directive for it
|
|
COPY api/ api/
|
|
|
|
# Download and Cache dependencies before building and copying source
|
|
# This will prevent re-downloading the operator's dependencies if they have not changed as this
|
|
# `run` layer will be cached
|
|
RUN go mod download
|
|
|
|
COPY *.go ./
|
|
COPY lib/ lib/
|
|
COPY operator/apis/ operator/apis/
|
|
COPY operator/controllers/ operator/controllers/
|
|
COPY operator/sidecar/ operator/sidecar/
|
|
COPY operator/main.go operator/main.go
|
|
COPY operator/namespace.go operator/namespace.go
|
|
|
|
# Compiler package should use host-triplet-agnostic name (i.e. "x86-64-linux-gnu-gcc" instead of "gcc")
|
|
# in most cases, to avoid issues on systems with multiple versions of gcc (i.e. buildboxes)
|
|
# TARGETOS and TARGETARCH are provided by Docker/buildx, but must be explicitly listed here
|
|
ARG COMPILER_NAME TARGETOS TARGETARCH
|
|
|
|
# Build the program
|
|
# CGO is required for github.com/gravitational/teleport/lib/system
|
|
RUN echo "Targeting $TARGETOS/$TARGETARCH with CC=$COMPILER_NAME" && \
|
|
CGO_ENABLED=1 CC=$COMPILER_NAME GOOS=$TARGETOS GOARCH=$TARGETARCH \
|
|
go build -a -o /go/bin/teleport-operator github.com/gravitational/teleport/operator
|
|
|
|
# Create the image with the build operator on the $TARGETPLATFORM
|
|
# TARGETPLATFORM is provided by Docker/buildx
|
|
FROM --platform=$TARGETPLATFORM gcr.io/distroless/cc
|
|
WORKDIR /
|
|
COPY --from=builder /go/bin/teleport-operator .
|
|
|
|
ENTRYPOINT ["/teleport-operator"]
|