RaseefDocs
Deploy

Builds

How Raseef turns a commit into an image, with your Dockerfile or without one.

With or without a Dockerfile

For each build Raseef decides how to build, in this order:

  1. If the service has a Dockerfile path, it builds with that file.
  2. Otherwise, if the service's root directory holds a Dockerfile, it builds with it.
  3. Otherwise it builds automatically: it detects the language and framework, installs dependencies, builds and sets the start command.

Automatic builds detect common stacks, including Node.js (Next.js, Nuxt, Remix, Astro, SvelteKit, Angular, NestJS, Express, Fastify, Hono, Vite and others), Python (including Django), Go, Ruby, PHP, Rust, Java, Elixir and Deno. When detection fails, the build log says why. A Dockerfile always gives you full control.

Images run on linux/amd64

Builds produce linux/amd64 images, and services run on linux/amd64. A Dockerfile must not pin another platform.

Variables during the build

The service's variables are available to the build:

  • in automatic builds, to the build steps;
  • with a Dockerfile, as build secrets and as build arguments. Declare the ones you use with ARG:
Dockerfile
ARG NEXT_PUBLIC_API_URL
RUN npm run build

Values of variables are masked in the build log. A change of variables builds the service again on its next deploy.

The port

A service built from GitHub listens on port 8080 by default, and Raseef sets PORT to the service's port. If the image declares exactly one port with EXPOSE and the service is still on 8080, the service switches to the declared port.

Limits

Limit
Build time30 minutes
Source archive200 MB
Image size4 GB
Build resourcesup to 4 vCPU and 8 GiB memory
Platformlinux/amd64

Build logs

Builds shows each build's log live, updated every two seconds. A build keeps up to 4,000 lines, each cut at 1,000 characters, for 30 days. The service lists its last 50 builds.

Build minutes are counted from the start of the build until the image is uploaded.

On this page