dev-resources.site
for different kinds of informations.
How to containerize a rust warp app
Published at
12/11/2024
Categories
rust
docker
Author
ΓΆzkan pakdil
I wrote this arti warp server for running whois via TOR network, Arti is CLI tool which has arti_client
library inside for connecting the network, my main target to dockerize this for easy deploy to koyeb.com
- I used
docker init
to create Dockerfile and others and changed the implementation little bit because of some special dependencies
ARG RUST_VERSION=1.82.0
ARG APP_NAME=arti_whois
FROM rust:${RUST_VERSION}-alpine AS build
ARG APP_NAME
WORKDIR /app
# Install host build dependencies.
RUN apk add --no-cache clang lld musl-dev git openssl-dev openssl libssl3 libcrypto3 libgcrypt openssl-libs-static ca-certificates
RUN --mount=type=bind,source=src,target=src \
--mount=type=bind,source=Cargo.toml,target=Cargo.toml \
--mount=type=bind,source=Cargo.lock,target=Cargo.lock \
--mount=type=cache,target=/app/target/ \
--mount=type=cache,target=/usr/local/cargo/git/db \
--mount=type=cache,target=/usr/local/cargo/registry/ \
cargo build --locked --release && \
cp ./target/release/$APP_NAME /bin/server
FROM alpine:3.18 AS final
USER root
COPY --from=build /bin/server /bin/
EXPOSE 8016
ENV RUST_BACKTRACE=1
ENV RUST_LOG=debug
CMD ["/bin/server"]
apk add
part took a while to figure out because on every run, compile was failing with different error, I needed to install all the dev lib dependencies to the alpine linux
- Test with
docker compose up --build
until everything is fine. I was using curl for testing the appcurl "localhost:8016/whois?ip=1.1.1.1" -v
- Than
docker push ozkanpakdil/arti_whois
to push it to docker repository
Now the app is in the docker hub π₯³
Articles
12 articles in total
What is load balancing and how to do it on client side
read article
How to find java app hosting(ISP) or How to deploy Spring Boot website to Koyeb
read article
How to deploy old php website to koyeb
read article
JetBrains developer stats of 2024
read article
How to containerize a rust warp app
currently reading
How to generate a Aurora Postgresql cluster with all auto explain enabled
read article
HashMap collisions and how JDK handles it
read article
Jetbrains Rider Endpoints
read article
Generating Flyway migrations using IntelliJ IDEA
read article
Native Image Quick Reference β GraalVM for JDK 23 - graalvm
read article
FFM (Foreign Function and Memory) Stdlib Example
read article
How to disable win11 startmenu internet search
read article
Featured ones: