File tree Expand file tree Collapse file tree 4 files changed +118
-0
lines changed
Expand file tree Collapse file tree 4 files changed +118
-0
lines changed Original file line number Diff line number Diff line change 1+ name : Publish Docker image
2+
3+ on :
4+ release :
5+ types : [published]
6+
7+ env :
8+ REGISTRY : ghcr.io
9+ IMAGE_NAME : ${{ github.repository }}
10+
11+ jobs :
12+ build-and-push-image :
13+ runs-on : ubuntu-latest
14+ permissions :
15+ contents : read
16+ packages : write
17+
18+ steps :
19+ - name : Checkout repository
20+ uses : actions/checkout@v3
21+
22+ - name : Log in to the Container registry
23+ uses : docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
24+ with :
25+ registry : ${{ env.REGISTRY }}
26+ username : ${{ github.actor }}
27+ password : ${{ secrets.GITHUB_TOKEN }}
28+
29+ - name : Extract metadata (tags, labels) for Docker
30+ id : meta
31+ uses : docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
32+ with :
33+ images : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
34+
35+ - name : Build and push Docker image
36+ uses : docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
37+ with :
38+ context : .
39+ file : docker/Dockerfile
40+ push : true
41+ tags : ${{ steps.meta.outputs.tags }}
42+ labels : ${{ steps.meta.outputs.labels }}
Original file line number Diff line number Diff line change 1+ FROM rust:1.71-bullseye as builder
2+ WORKDIR /usr/src/freighter
3+
4+ COPY Cargo.toml .
5+ COPY Cargo.lock .
6+ COPY .cargo/ .cargo
7+ COPY freighter/ freighter
8+ COPY freighter-auth/ freighter-auth
9+ COPY freighter-index/ freighter-index
10+ COPY freighter-server/ freighter-server
11+ COPY freighter-storage/ freighter-storage
12+
13+ RUN cd freighter \
14+ && cargo install --path .
15+
16+ FROM debian:bullseye-slim
17+ COPY --from=builder /usr/local/cargo/bin/freighter /usr/local/bin/freighter
18+
19+ RUN apt-get update \
20+ && apt-get install -y gettext-base \
21+ && rm -rf /var/lib/apt/lists/*
22+
23+ COPY docker/entrypoint.sh .
24+ COPY docker/config.yaml.tpl .
25+
26+ # Create file so it can be written in entrypoint
27+ RUN touch config.yaml && chown nobody:nogroup config.yaml
28+
29+ USER nobody:nogroup
30+
31+ ENTRYPOINT ["/entrypoint.sh" ]
Original file line number Diff line number Diff line change 1+ service:
2+ address: "$SERVER_ADDR"
3+ download_endpoint: "$DOWNLOAD_ENDPOINT"
4+ api_endpoint: "$API_ENDPOINT"
5+ metrics_address: "$METRICS_ADDR"
6+
7+ index_db: &db
8+ dbname: "$POSTGRES_DBNAME"
9+ user: "$POSTGRES_USER"
10+ password: "$POSTGRES_PASSWORD"
11+ host: "$POSTGRES_HOST"
12+ port: $POSTGRES_PORT
13+
14+ auth_db: *db
15+
16+ store:
17+ name: "$BUCKET_NAME"
18+ endpoint_url: "$BUCKET_ENDPOINT"
19+ region: "us-east-1"
20+ access_key_id: "$BUCKET_ACCESS_KEY_ID"
21+ access_key_secret: "$BUCKET_ACCESS_KEY_ID"
Original file line number Diff line number Diff line change 1+ #! /bin/sh
2+
3+ # Freighter Server
4+ export SERVER_ADDR=" ${SERVER_ADDR:- 127.0.0.1: 3000} "
5+ export DOWNLOAD_ENDPOINT=" ${DOWNLOAD_ENDPOINT:- " $SERVER_ADDR /downloads/{crate}/{version}" } "
6+ export API_ENDPOINT=" ${API_ENDPOINT:- " $SERVER_ADDR " } "
7+ export METRICS_ADDR=" ${METRICS_ADDR:- 127.0.0.1: 3001} "
8+
9+ # PostgreSQL
10+ export POSTGRES_HOST=" ${POSTGRES_HOST:? \$ POSTGRES_HOST required} "
11+ export POSTGRES_PORT=" ${POSTGRES_PORT:- 5432} "
12+ export POSTGRES_USER=" ${POSTGRES_USER:? \$ POSTGRES_USER required} "
13+ export POSTGRES_PASSWORD=" ${POSTGRES_PASSWORD:? \$ POSTGRES_PASSWORD required} "
14+ export POSTGRES_DBNAME=" ${POSTGRES_DBNAME:- freighter} "
15+
16+ # S3 Storage
17+ export BUCKET_NAME=" ${BUCKET_NAME:? \$ BUCKET_NAME required} "
18+ export BUCKET_ENDPOINT=" ${BUCKET_ENDPOINT:? \$ BUCKET_ENDPOINT required} "
19+ export BUCKET_ACCESS_KEY_ID=" ${BUCKET_ACCESS_KEY_ID:? \$ BUCKET_ACCESS_KEY_ID required} "
20+ export BUCKET_ACCESS_KEY_SECRET=" ${BUCKET_ACCESS_KEY_SECRET:? \$ BUCKET_ACCESS_KEY_SECRET required} "
21+
22+ envsubst < " config.yaml.tpl" > " config.yaml"
23+
24+ exec freighter -c config.yaml
You can’t perform that action at this time.
0 commit comments