services: dev: build: context: . dockerfile: Dockerfile # Read from docker/.env, which is machine-specific and gitignored. # The fallbacks are the usual first-user ids on Linux, so a fresh clone # without a .env still builds correctly there. args: UID: "${UID:-1000}" GID: "${GID:-1000}" image: webserv-dev container_name: webserv-dev # The project directory lives on the Mac and is mounted here: you keep editing # in VS Code on the host, while compiling and running on Linux. volumes: - ..:/webserv working_dir: /webserv # Ports the config files listen on, exposed to the Mac so a host browser, # curl or siege can reach the server running inside. ports: - "8000:8000" - "8001:8001" - "8002:8002" - "8080:8080" # Keeps the container alive so you can `docker compose exec dev bash` into it. stdin_open: true tty: true command: /bin/bash