feat: add docker recipe + environment with default interpolation in config
Some checks failed
arcad/emissary/pipeline/head There was a failure building this commit
Some checks failed
arcad/emissary/pipeline/head There was a failure building this commit
This commit is contained in:
58
Dockerfile
58
Dockerfile
@ -1,4 +1,12 @@
|
||||
FROM golang:1.19 AS BUILD
|
||||
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
|
||||
@ -7,9 +15,9 @@ COPY . /src
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
RUN make GORELEASER_ARGS='build --rm-dist --single-target --snapshot' release
|
||||
RUN make mktools && make GORELEASER_ARGS="build --snapshot --clean --single-target --id emissary-server" goreleaser
|
||||
|
||||
FROM busybox:latest AS RUNTIME
|
||||
FROM busybox:latest AS emissary-server
|
||||
|
||||
ARG DUMB_INIT_VERSION=1.2.5
|
||||
|
||||
@ -19,11 +27,47 @@ RUN mkdir -p /usr/local/bin \
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/dumb-init", "--"]
|
||||
|
||||
COPY --from=BUILD /src/dist/emissary_linux_amd64_v1 /app
|
||||
COPY --from=BUILD /src/tmp/config.yml /etc/emissary/config.yml
|
||||
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
|
||||
|
||||
ENTRYPOINT ["/app/emissary"]
|
||||
RUN mkdir -p /data
|
||||
|
||||
CMD ["server", "run", "-c", "/etc/emissary/config.yml"]
|
||||
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" ]
|
Reference in New Issue
Block a user