diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..bb252b3 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +* +!src +!Cargo.toml +!Cargo.lock diff --git a/.github/workflows/gpt.dev.yaml b/.github/workflows/gpt.dev.yaml new file mode 100644 index 0000000..6799fbe --- /dev/null +++ b/.github/workflows/gpt.dev.yaml @@ -0,0 +1,60 @@ +name: DKN L2 Oracle Dev Image (GPT) +on: + push: + branches: ["master"] + +jobs: + build-and-push: + name: Build and Push GPT Dev Image + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: us-east-1 + mask-aws-account-id: "false" + + - name: Login to ECR + uses: docker/login-action@v3 + with: + registry: 974464413599.dkr.ecr.us-east-1.amazonaws.com + + - name: Get Unix Time + id: timestamp + run: echo "timestamp=$(date +%s)" >> $GITHUB_OUTPUT + + - name: Get SHA + id: sha + run: echo "sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + + - name: Get Branch Name + id: branch + run: echo "branch=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_OUTPUT + + - name: Set Image Tag + id: itag + run: echo "itag=${{ steps.branch.outputs.branch }}-${{ steps.sha.outputs.sha }}-${{ steps.timestamp.outputs.timestamp }}" >> $GITHUB_OUTPUT + + - name: Build and push + uses: docker/build-push-action@v6 + env: + IMAGE_TAG: ${{ steps.itag.outputs.itag }} + with: + target: gpt + platforms: linux/amd64 + push: true + tags: | + ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ secrets.AWS_DEFAULT_REGION }}.amazonaws.com/dkn-l2-oracle-gpt:dev + ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ secrets.AWS_DEFAULT_REGION }}.amazonaws.com/dkn-l2-oracle-gpt:${{ env.IMAGE_TAG }} diff --git a/Dockerfile b/Dockerfile index 6260739..3cb4799 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM rust:1.75 as builder +FROM --platform=$BUILDPLATFORM rust:1.81.0 as builder # https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope # @@ -21,9 +21,7 @@ COPY . . RUN cargo build --release # copy release binary to distroless -FROM --platform=$BUILDPLATFORM gcr.io/distroless/cc +FROM --platform=$BUILDPLATFORM gcr.io/distroless/cc AS gpt COPY --from=builder /usr/src/app/target/release/dkn-oracle / -EXPOSE 8080 - -CMD ["./dkn-oracle", "start"] +ENTRYPOINT ["./dkn-oracle"]