diff --git a/Dockerfile b/Dockerfile index 4481689..380fac7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,7 +61,7 @@ ONBUILD RUN \ # Here we use the MATERIAL_METHOD arg to determine which method we use to get # material into our container for build time. -FROM ${MATERIAL_METHOD}_material as material +FROM ${MATERIAL_METHOD}_material AS material #### # BUILDER diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 84d0aab..01e146e 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -28,8 +28,20 @@ services: YAML_TEMPLATE: "config/oxford.yaml" command: "yarn dev" volumes: + - node-modules:/app/node_modules + - ./.material:/app/.material + - ./config:/app/config - ./components:/app/components + - ./lib:/app/lib - ./pages:/app/pages + - ./public:/app/public + - ./scripts:/app/scripts + - ./styles:/app/styles + - ./.env:/app/.env + - ./next.config.js:/app/next.config.js + - ./cypress.config.ts:/app/cypress.config.ts + - ./postcss.config.js:/app/postcss.config.js + - ./tailwind.config.js:/app/tailwind.config.js ports: - "3000:3000" links: @@ -42,3 +54,4 @@ services: DATABASE_URL: postgresql://postgres:super-secret-password@db:5432 volumes: dev-data: + node-modules: diff --git a/docs/development/docker.md b/docs/development/docker.md index 4a7d017..223985d 100644 --- a/docs/development/docker.md +++ b/docs/development/docker.md @@ -40,3 +40,18 @@ value (under `services.gutenberg.build.args`) to a different config yaml file or changing `MATERIAL_METHOD` to `"copy"` to copy a locally checked out folder into the container at build-time instead of pulling fresh - for more details on how to pull material to edit locally follow the below section. + +## Local development with Docker + +`docker-compose.dev.yaml` configures a local development environment in Docker, +including Node and Yarn. It runs the app in development mode, so that you can make +changes to the code and see them on http://localhost:3000. + +```sh +# build the development image +docker compose -f docker-compose.dev.yaml build +# run the Next.js app on http://localhost:3000 in development mode +docker compose -f docker-compose.dev.yaml up +# shut down the app and database when you're finished +docker compose -f docker-compose.dev.yaml down +```