Getting Started

Local Development

The best way to catch build errors before deploying is to run the same Docker build locally. DropDeploy generates a Dockerfile for your project — you can test it yourself with two commands.

1. Install Docker

Docker Desktop is available for Mac, Windows, and Linux at docs.docker.com/get-docker. Verify it works:

docker --version

2. Get the Dockerfile

DropDeploy generates the Dockerfile automatically — you do not need one in your repo. But to test locally, find your framework in the Frameworks section, copy the Dockerfile shown there, and save it as Dockerfile in your project root.

Delete the local Dockerfile after testing. DropDeploy generates its own at deploy time and ignores any Dockerfile in your repo.

3. Build and run

Run these two commands from your project root:

docker build -t my-app .
docker run --rm -p 8080:<CONTAINER_PORT> my-app

Replace <CONTAINER_PORT> with the port your framework uses (see the table below). Then open http://localhost:8080 in your browser.

If you have environment variables, pass them with -e KEY=value or --env-file .env:
docker run --rm -p 8080:3000 --env-file .env my-app

Container port reference

Use this table to fill in <CONTAINER_PORT> above.

FrameworkContainer portExample run command
Static HTML80docker run -p 8080:80 my-app
Node.js3000docker run -p 8080:3000 my-app
Next.js3000docker run -p 8080:3000 my-app
React (Vite)80docker run -p 8080:80 my-app
Vue (Vite)80docker run -p 8080:80 my-app
Svelte (Vite)80docker run -p 8080:80 my-app
Django8000docker run -p 8080:8000 my-app
FastAPI8000docker run -p 8080:8000 my-app
Flask5000docker run -p 8080:5000 my-app
Go8080docker run -p 8080:8080 my-app
Rust8080docker run -p 8080:8080 my-app
Java / Spring Boot8080docker run -p 8080:8080 my-app

Common build errors

COPY failed: file not found

The file referenced in the Dockerfile does not exist at that path in your repo. Check spelling and that the file is committed to git (not in .gitignore).

npm ERR! missing script: start

Your package.json has no "start" script. Add one: "start": "node index.js" (or whatever starts your server).

Error: listen EADDRINUSE

The port your app binds to does not match what the Dockerfile EXPOSEs. Check your app listens on the correct port.

Build takes >10 minutes

Rust and Java builds can be slow. This is normal on first run — Docker layer caching makes subsequent builds faster.

Container exits immediately

Your app is crashing on startup. Run docker run -it my-app sh and inspect the container, or check the build log output for panics/errors.