diff --git a/Stalwart/Dockerfile.stalwart b/Stalwart/Dockerfile.stalwart new file mode 100644 index 0000000..e11ded7 --- /dev/null +++ b/Stalwart/Dockerfile.stalwart @@ -0,0 +1,32 @@ +FROM ubuntu:22.04 + +# Update and Upgrade Ubuntu -> install dependencies +RUN apt-get update && apt-get upgrade -y +RUN apt-get install curl wget git cargo build-essential clang libclang-dev -y + +# Download and install FoundationDB client library +RUN wget https://github.com/apple/foundationdb/releases/download/7.3.63/foundationdb-clients_7.3.63-1_amd64.deb +RUN dpkg -i foundationdb-clients_7.3.63-1_amd64.deb + +# Download Rust and setup Cargo for build +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +ENV PATH="/root/.cargo/bin:${PATH}" + +# Build and run stalwart with RocksDB, FoundationDB, S3, Elastic, and Redis features +RUN git clone https://github.com/stalwartlabs/stalwart.git stalwart-build +WORKDIR /stalwart-build +RUN git tag --sort=-version:refname | head -1 +RUN git checkout tags/$(git tag --sort=-version:refname | head -1) +RUN cargo build --release -p stalwart --no-default-features --features "rocks foundationdb s3 elastic redis" +RUN cp target/release/stalwart /usr/local/bin/stalwart + +# Expose the ports for Stalwart +EXPOSE 443 8080 25 587 465 143 993 4190 110 995 + +# Change the Directory of the server to be in the stalwart install directory +WORKDIR /opt/stalwart + +# Copy and run Entrypoint file +COPY ./resources/docker/entrypoint.sh /usr/local/bin/entrypoint.sh +RUN chmod +x /usr/local/bin/entrypoint.sh +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] \ No newline at end of file