alphagov / tech-docs-gem

Gem to distribute the tech docs project
https://tdt-documentation.london.cloudapps.digital/
MIT License
15 stars 38 forks source link

Devcontainer #264

Open zapthedingbat opened 3 years ago

zapthedingbat commented 3 years ago

This PR isn't a feature/fix on the backlog but I found using a vscode devcontainer very useful when working with this repo so I thought it was worth sharing a suggestion in case it might be useful for others. Essentially this allows us to wrap up development dependencies (Ruby and NodeJS versions) into a docker container so you can get up an running without worrying about what and where you have installed.

If you're using vscode the just running Open Folder in Container... from the command panel will build, run and attach to the container and expose ports all automagically for you.

For people that aren't VSCode users it might still be helpful to think about using the docker file, a bit like this:

Build the container (you should only need to do this once, unless your development dependencies change)

docker build -t tech-docs-gem -f .\.devcontainer\Dockerfile .

Run the container. This will mount the current directory (pwd) into the /workspaces/tech-docs-gem directory in the container, expose the port 4567 to the host machine and put you into a bash shell in the container.

docker run -p 4567:4567 --mount type=bind,source="$(pwd)"/,target=/workspaces/tech-docs-gem --rm -it tech-docs-gem bash

You can then work in the container

cd /workspaces/tech-docs-gem/example
bundle install
bundle exec middleman server