The following are dockerfiles that could be used to build sveltekit apps images using different adapters.
- Create a Dockerfile with the following content:
 
FROM node:alpine
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
RUN npm run build
CMD ["node", "build"]
EXPOSE 3000- 
Build the Docker image:
docker build -t sveltekit-node ./adapter-node.Dockerfile - 
Run the Docker container:
docker run -p 3000:3000 sveltekit-nodeApp should now be accessible athttp://localhost:3000. 
- Create a Dockerfile with the following content:
 
FROM oven/bun
WORKDIR /app
COPY package.json package.json
RUN bun install
COPY . .
RUN bun run build
EXPOSE 3000
ENTRYPOINT ["bun", "./build"]- 
Build the Docker image:
docker build -t sveltekit-bun ./adapter-bun.Dockerfile - 
Run the Docker container:
docker run -p 3000:3000 sveltekit-bunApp should now be accessible athttp://localhost:3000. 
Since static adapter outputs static html/js files/assets, we can use nginx to serve the project. The project is first built using node image, and then uses nginx image to serve the built files... giving a much smaller image size.
- Create a Dockerfile with the following content:
 
FROM node:alpine as build
ADD . /app
WORKDIR /app
RUN npm install
RUN npm run build
FROM nginx:stable
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /app/build /usr/share/nginx/html- Create an 
nginx.conffile in the same directory as theDockerfilewith the following content: 
server {
    listen 80;
    listen [::]:80;
    server_name _;
    location / {
      root /usr/share/nginx/html;
      try_files $uri $uri/index.html $uri.html /index.html;
    }
    include mime.types;
    types {
        application/javascript js mjs;
    }
}
- Build the Docker image:
docker build -t sveltekit-static ./adapter-static.Dockerfile 
The image exposes port 80, so to run it on port 3000 locally:
docker run -p 3000:80 sveltekit-static
App should now be accessible at http://localhost:3000.
Different projects may require different dependencies and dockerization techniques, the above is one of the ways you can achieve this.
Please feel very welcome to contribute/correct/update/enhance.