Skip to content

Commit

Permalink
Merge pull request #2 from rollkit/contract-docker
Browse files Browse the repository at this point in the history
Contract docker
  • Loading branch information
MSevey authored Jul 11, 2024
2 parents d6f158f + 15d2db9 commit 7cb2b39
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .github/workflows/docker-build-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,13 @@ jobs:
with:
dockerfile: Dockerfile
secrets: inherit

docker-build-contract:
permissions:
contents: write
packages: write
uses: rollkit/.github/.github/workflows/reusable_dockerfile_pipeline.yml@v0.4.1
with:
dockerfile: Dockerfile.contract
packageName: contract
secrets: inherit
38 changes: 38 additions & 0 deletions Dockerfile.contract
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Stage 1: Build the contract using Rust
FROM rust:1.79 as builder

# Install dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
git \
bash \
build-essential \
libssl-dev \
ca-certificates \
&& apt-get clean && rm -rf /var/lib/apt/lists/*

# Set up Rust environment and add wasm target
RUN rustup target add wasm32-unknown-unknown

# Clone the cw-contracts repository
RUN git clone https://github.com/InterWasm/cw-contracts && \
cd cw-contracts && \
git checkout v0.11.0

# Navigate to the nameservice contract directory
WORKDIR /cw-contracts/contracts/nameservice

# Compile the contract to wasm
RUN cargo wasm

# Stage 2: Create a minimal runtime image
FROM alpine:3.20

# Install only the necessary runtime dependencies
RUN apk add --no-cache bash curl ranger vim

# Copy the nameservice directory from the builder stage
COPY --from=builder /cw-contracts/contracts/nameservice /root/cw-contracts/contracts/nameservice

# Keep the container running
CMD tail -F /dev/null

0 comments on commit 7cb2b39

Please sign in to comment.