diff --git a/backend/build.sh b/backend/build.sh old mode 100644 new mode 100755 index c3c40dd33..8c1714d55 --- a/backend/build.sh +++ b/backend/build.sh @@ -33,12 +33,27 @@ function build_api(){ echo "build completed for http" return } + cwd=$PWD for image in $(ls services); do - docker build -t ${DOCKER_REPO:-'local'}/$image:${git_sha1} --build-arg SERVICE_NAME=$image . - [[ $PUSH_IMAGE -eq 1 ]] && { - docker push ${DOCKER_REPO:-'local'}/$image:${git_sha1} - } + case "$image" in + http) + echo build http + echo "$PWD" + cd cmd + docker build -t ${DOCKER_REPO:-'local'}/$image:${git_sha1} --build-arg SERVICE_NAME=$image -f ../backend . + [[ $PUSH_IMAGE -eq 1 ]] && { + docker push ${DOCKER_REPO:-'local'}/$image:${git_sha1} + } + cd ../ + ;; + *) + docker build -t ${DOCKER_REPO:-'local'}/$image:${git_sha1} --build-arg SERVICE_NAME=$image . + [[ $PUSH_IMAGE -eq 1 ]] && { + docker push ${DOCKER_REPO:-'local'}/$image:${git_sha1} + } + ;; + esac echo "::set-output name=image::${DOCKER_REPO:-'local'}/$image:${git_sha1}" done echo "backend build completed" diff --git a/backend/cmd/Dockerfile b/backend/cmd/Dockerfile new file mode 100644 index 000000000..e2f611afa --- /dev/null +++ b/backend/cmd/Dockerfile @@ -0,0 +1,60 @@ +FROM golang:1.18-alpine3.15 AS prepare + +RUN apk add --no-cache git openssh openssl-dev pkgconf gcc g++ make libc-dev bash + +WORKDIR /root + +COPY go.mod . +COPY go.sum . +RUN go mod download + + +FROM prepare AS build +COPY pkg pkg +COPY services services +COPY internal internal +COPY cmd cmd + +ARG SERVICE_NAME +RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o service -tags musl openreplay/backend/cmd/$SERVICE_NAME + +FROM alpine +RUN apk add --no-cache ca-certificates + +ENV TZ=UTC \ + FS_ULIMIT=1000 \ + FS_DIR=/mnt/efs \ + MAXMINDDB_FILE=/root/geoip.mmdb \ + UAPARSER_FILE=/root/regexes.yaml \ + HTTP_PORT=80 \ + BEACON_SIZE_LIMIT=7000000 \ + KAFKA_USE_SSL=true \ + KAFKA_MAX_POLL_INTERVAL_MS=400000 \ + REDIS_STREAMS_MAX_LEN=3000 \ + TOPIC_RAW_WEB=raw \ + TOPIC_RAW_IOS=raw-ios \ + TOPIC_CACHE=cache \ + TOPIC_ANALYTICS=analytics \ + TOPIC_TRIGGER=trigger \ + GROUP_SINK=sink \ + GROUP_STORAGE=storage \ + GROUP_DB=db \ + GROUP_ENDER=ender \ + GROUP_CACHE=cache \ + AWS_REGION_WEB=eu-central-1 \ + AWS_REGION_IOS=eu-west-1 \ + AWS_REGION_ASSETS=eu-central-1 \ + CACHE_ASSETS=true \ + ASSETS_SIZE_LIMIT=6291456 \ + FS_CLEAN_HRS=72 \ + LOG_QUEUE_STATS_INTERVAL_SEC=60 + + +ARG SERVICE_NAME +RUN if [ "$SERVICE_NAME" = "http" ]; then \ + wget https://raw.githubusercontent.com/ua-parser/uap-core/master/regexes.yaml -O "$UAPARSER_FILE" &&\ + wget https://static.openreplay.com/geoip/GeoLite2-Country.mmdb -O "$MAXMINDDB_FILE"; fi + + +COPY --from=build /root/service /root/service +ENTRYPOINT /root/service diff --git a/backend/services/http/build_hack b/backend/services/http/build_hack new file mode 100644 index 000000000..e69de29bb