Skip to content

Commit

Permalink
build: update Docker dev environment (#289)
Browse files Browse the repository at this point in the history
* build: update Docker dev environment

- add some more local code directories to the docker dev build.
- update the docs.

* Add /lib to mounted volumes

* add /scripts and app config files to mounted volumes

* persist /node_modules across builds

* Fix Dockerfile syntax error
  • Loading branch information
eatyourgreens authored Feb 6, 2025
1 parent 5a1e8b3 commit 333c5aa
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
13 changes: 13 additions & 0 deletions docker-compose.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -42,3 +54,4 @@ services:
DATABASE_URL: postgresql://postgres:super-secret-password@db:5432
volumes:
dev-data:
node-modules:
15 changes: 15 additions & 0 deletions docs/development/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```

0 comments on commit 333c5aa

Please sign in to comment.