remote_hash_map 0.1.3

Remote hash map
Documentation
# Use the official Rust image as the base image
FROM rust:latest

# Install dependencies including protoc and protobuf-compiler
RUN apt-get update && apt-get install -y \
    build-essential \
    cmake \
    protobuf-compiler \
    libprotobuf-dev \
    curl \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Install protoc-rust plugin from the protobuf crate
RUN cargo install --locked protobuf-codegen

# Set the working directory inside the container
WORKDIR /usr/src/app

# Add protoc-gen-rust to the system PATH
ENV PATH="/root/.cargo/bin:${PATH}"

# Verify the installation
RUN which protoc-gen-rust && protoc-gen-rust --version

# Copy the Cargo.toml and Cargo.lock files
COPY Cargo.toml Cargo.lock ./

# Copy the source code
COPY src ./src

# Copy the .proto files and any related files
COPY proto ./proto

# Copy the build script
COPY build.rs ./

# Copy the entrypoint script and set permissions
COPY entrypoint.sh ./
RUN chmod +x ./entrypoint.sh

# Set necessary environment variables
ENV OUT_DIR=/usr/src/app/target

# Create output directory
RUN mkdir -p $OUT_DIR

# Build the proto files using protobuf-codegen
RUN protoc --proto_path=proto --rust_out=$OUT_DIR proto/*.proto

# Build the Rust project
RUN cargo build --release

# Expose the port 6000 and 5000
EXPOSE 5000 6000

# Run the compiled binary with the specified arguments
ENTRYPOINT ["/usr/src/app/entrypoint.sh"]
#ENTRYPOINT ["/bin/sh"]
#CMD ["-c", "while :; do sleep 10; done"]