FROM alpine as certs RUN apk update && apk add ca-certificates curl openssl bash RUN curl -k https://forge.cadoles.com/Cadoles/Jenkins/raw/branch/master/resources/com/cadoles/common/add-letsencrypt-ca.sh | bash ##################################### # Emissary Server # ##################################### FROM golang:1.21 AS build-emissary-server RUN apt-get update \ && apt-get install -y make COPY . /src WORKDIR /src RUN make mktools && make GORELEASER_ARGS="build --snapshot --clean --single-target --id emissary-server" goreleaser FROM busybox:latest AS emissary-server ARG DUMB_INIT_VERSION=1.2.5 RUN mkdir -p /usr/local/bin \ && wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_x86_64 \ && chmod +x /usr/local/bin/dumb-init ENTRYPOINT ["/usr/local/bin/dumb-init", "--"] COPY --from=build-emissary-server /src/dist/emissary-server_linux_amd64_v1 /app COPY misc/docker/server.yml /etc/emissary/server.yml COPY --from=certs /etc/ssl/certs /etc/ssl/certs EXPOSE 3000 RUN mkdir -p /data CMD [ "/app/emissary", "-c", "/etc/emissary/config.yml", "server", "run"] ##################################### # Emissary Agent # ##################################### FROM golang:1.21 AS build-emissary-agent RUN apt-get update \ && apt-get install -y make COPY . /src WORKDIR /src RUN make mktools && make GORELEASER_ARGS="build --snapshot --clean --single-target --id emissary-agent" goreleaser FROM busybox:latest AS emissary-agent ARG DUMB_INIT_VERSION=1.2.5 RUN mkdir -p /usr/local/bin \ && wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_x86_64 \ && chmod +x /usr/local/bin/dumb-init ENTRYPOINT ["/usr/local/bin/dumb-init", "--"] COPY --from=build-emissary-agent /src/dist/emissary-agent_linux_amd64_v1 /app COPY --chmod=777 misc/docker/docker-agent-wrapper.sh /usr/local/bin/docker-agent-wrapper COPY misc/docker/agent.yml /etc/emissary/agent.yml COPY --from=certs /etc/ssl/certs /etc/ssl/certs RUN mkdir -p /data CMD [ "/usr/local/bin/docker-agent-wrapper", "/app/emissary", "-c", "/etc/emissary/agent.yml", "agent", "run" ]