mirror of
https://github.com/semaphoreui/semaphore.git
synced 2025-01-21 07:49:34 +01:00
43 lines
1.4 KiB
Docker
43 lines
1.4 KiB
Docker
ARG BUILDPLATFORM=linux/amd64
|
|
|
|
# ansible-semaphore production image
|
|
FROM --platform=$BUILDPLATFORM golang:1.18.3-alpine3.16 as builder
|
|
|
|
|
|
COPY ./ /go/src/github.com/ansible-semaphore/semaphore
|
|
WORKDIR /go/src/github.com/ansible-semaphore/semaphore
|
|
|
|
ARG TARGETOS=linux
|
|
ARG TARGETARCH=amd64
|
|
ENV GOOS="${TARGETOS}"
|
|
ENV GOARCH="${TARGETARCH}"
|
|
|
|
RUN apk add --no-cache -U libc-dev curl nodejs npm git && \
|
|
./deployment/docker/prod/bin/install
|
|
|
|
# Uses frolvlad alpine so we have access to glibc which is needed for golang
|
|
# and when deploying in openshift
|
|
FROM frolvlad/alpine-glibc:alpine-3.16 as runner
|
|
LABEL maintainer="Tom Whiston <tom.whiston@gmail.com>"
|
|
|
|
RUN apk add --no-cache sshpass git curl ansible mysql-client openssh-client-default tini py3-aiohttp && \
|
|
adduser -D -u 1001 -G root semaphore && \
|
|
mkdir -p /tmp/semaphore && \
|
|
mkdir -p /etc/semaphore && \
|
|
mkdir -p /var/lib/semaphore && \
|
|
chown -R semaphore:0 /tmp/semaphore && \
|
|
chown -R semaphore:0 /etc/semaphore && \
|
|
chown -R semaphore:0 /var/lib/semaphore
|
|
|
|
COPY --from=builder /usr/local/bin/semaphore-wrapper /usr/local/bin/
|
|
COPY --from=builder /usr/local/bin/semaphore /usr/local/bin/
|
|
|
|
RUN chown -R semaphore:0 /usr/local/bin/semaphore-wrapper &&\
|
|
chown -R semaphore:0 /usr/local/bin/semaphore
|
|
|
|
WORKDIR /home/semaphore
|
|
USER 1001
|
|
|
|
ENTRYPOINT ["/sbin/tini", "--"]
|
|
CMD ["/usr/local/bin/semaphore-wrapper", "/usr/local/bin/semaphore", "server", "--config", "/etc/semaphore/config.json"]
|