Skip to content

Tips: docker

Andrea Fontana edited this page May 28, 2023 · 1 revision

First, create your serverino application: dub init -t serverino my_serverino && cd my_serverino

Then, create a Dockerfile with a minimal system. Let's use Alpine (but you can use everything you want: ubuntu, arch, etc..)

FROM alpine:latest

RUN apk update && apk upgrade
RUN apk add dmd dub cmake gcc make musl-dev
RUN ln -fs /usr/share/zoneinfo/Europe/Rome /etc/localtime
RUN apk add tzdata
RUN adduser -D -S www-data

WORKDIR /source

Build your docker

docker build -t your_docker .

Finally run dub inside your docker but using your local dir for source and dub cache. I guess you want to put the following line in a script dub.sh

docker run -ti --rm -v $(pwd):/source -v $(pwd)/.docker-dub:/root/.dub -p 8080:8080 your_docker dub

Clone this wiki locally