diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-containers.yml similarity index 66% rename from .github/workflows/build-container.yml rename to .github/workflows/build-containers.yml index 7994b85..d477a61 100644 --- a/.github/workflows/build-container.yml +++ b/.github/workflows/build-containers.yml @@ -29,10 +29,17 @@ jobs: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Build and push default image + - name: Build and push indexer container uses: docker/build-push-action@v3.2.0 with: - context: . # Because GH actions are for kids and put protection on everything; https://stackoverflow.com/a/71159809/11276254 + context: . push: true - tags: | - ghcr.io/${{ github.repository }}:${{ env.IMAGE_TAG }} + file: dockerfile.indexer + tags: ghcr.io/${{ github.repository }}/indexer:${{ env.IMAGE_TAG }} + - name: Build and push services container + uses: docker/build-push-action@v3.2.0 + with: + context: . + push: true + file: dockerfile.services + tags: ghcr.io/${{ github.repository }}/services:${{ env.IMAGE_TAG }} diff --git a/Dockerfile b/dockerfile.indexer similarity index 90% rename from Dockerfile rename to dockerfile.indexer index 4b86170..32906a3 100644 --- a/Dockerfile +++ b/dockerfile.indexer @@ -12,7 +12,6 @@ COPY . ./ # Build the applications RUN go build -o /app/flare_indexer ./indexer/main/indexer.go -# RUN go build -o /app/flare_services ./services/main/services.go FROM debian:latest AS execution diff --git a/dockerfile.services b/dockerfile.services new file mode 100644 index 0000000..b709271 --- /dev/null +++ b/dockerfile.services @@ -0,0 +1,27 @@ +# build executable +FROM golang:1.18 AS builder + +WORKDIR /build + +# Copy and download dependencies using go mod +COPY go.mod go.sum ./ +RUN go mod download + +# Copy the code into the container +COPY . ./ + +# Build the applications +RUN go build -o /app/flare_services ./services/main/services.go + +FROM debian:latest AS execution + +ARG deployment=flare + +RUN apt-get -y update && apt-get -y install curl + +WORKDIR /app +COPY --from=builder /app/flare_services . +COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ +COPY ./docker/indexer/config_${deployment}_services.toml ./config.toml + +CMD ["./flare_services", "--config", "/app/config.toml" ]