forked from jitsucom/jitsu
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver-release.Dockerfile
60 lines (43 loc) · 1.69 KB
/
server-release.Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# BASE STAGE
FROM alpine:3.13 as main
RUN apk add --no-cache build-base python3 py3-pip python3-dev tzdata
ARG dhid
ENV DOCKER_HUB_ID=$dhid
ENV TZ=UTC
ENV EVENTNATIVE_USER=eventnative
RUN addgroup -S $EVENTNATIVE_USER \
&& adduser -S -G $EVENTNATIVE_USER $EVENTNATIVE_USER \
&& mkdir -p /home/$EVENTNATIVE_USER/data/logs/events \
&& mkdir -p /home/$EVENTNATIVE_USER/data/config \
&& mkdir -p /home/$EVENTNATIVE_USER/data/venv \
&& mkdir -p /home/$EVENTNATIVE_USER/app \
&& chown -R $EVENTNATIVE_USER:$EVENTNATIVE_USER /home/$EVENTNATIVE_USER
# Create symlink for backward compatibility
RUN ln -s /home/$EVENTNATIVE_USER/data/config /home/$EVENTNATIVE_USER/app/res && \
ln -s /home/$EVENTNATIVE_USER/data/logs /home/$EVENTNATIVE_USER/logs && \
chown -R $EVENTNATIVE_USER:$EVENTNATIVE_USER /home/$EVENTNATIVE_USER/logs
#######################################
# BUILD BACKEND STAGE
FROM jitsucom/server-builder as builder
RUN mkdir /app
WORKDIR /go/src/github.com/jitsucom/jitsu/server
#Caching dependencies
ADD server/go.mod ./
RUN go mod tidy && go mod download
#Copy backend
ADD server/. ./.
ADD .git ./.git
# Build backend and copy binary
RUN make docker_assemble &&\
cp ./build/dist/eventnative /app/
#######################################
# FINAL STAGE
FROM main as final
ADD server/build/dist/ /home/$EVENTNATIVE_USER/app/
COPY --from=builder /app/eventnative /home/$EVENTNATIVE_USER/app/
WORKDIR /home/$EVENTNATIVE_USER/app
RUN chown -R $EVENTNATIVE_USER:$EVENTNATIVE_USER /home/$EVENTNATIVE_USER/app
USER $EVENTNATIVE_USER
VOLUME ["/home/$EVENTNATIVE_USER/data"]
EXPOSE 8001
ENTRYPOINT ./eventnative -cfg=../data/config/eventnative.yaml -cr=true -dhid="$DOCKER_HUB_ID"