All Projects → alphagov → govuk-docker

alphagov / govuk-docker

Licence: MIT License
GOV.UK development environment using Docker 🐳

Programming Languages

ruby
36898 projects - #4 most used programming language
shell
77523 projects
Makefile
30231 projects
Dockerfile
14818 projects

Labels

Projects that are alternatives of or similar to govuk-docker

Frontend
Serves the homepage, transactions and some index pages on GOV.UK
Stars: ✭ 234 (+532.43%)
Mutual labels:  govuk
slimmer
Templating Rack middleware, injects standard header/footer and GOV.UK Components
Stars: ✭ 30 (-18.92%)
Mutual labels:  govuk
government-frontend
Serves government pages on GOV.UK
Stars: ✭ 42 (+13.51%)
Mutual labels:  govuk
gds-nodejs-boilerplate
A Node.js project boilerplate for production apps
Stars: ✭ 18 (-51.35%)
Mutual labels:  govuk
collections
Serves GOV.UK navigation pages, browse, topic, step-by-steps & services and information pages.
Stars: ✭ 32 (-13.51%)
Mutual labels:  govuk
publisher
Publishes mainstream content on GOV.UK
Stars: ✭ 42 (+13.51%)
Mutual labels:  govuk
Government Service Design Manual
Government Service Design Manual
Stars: ✭ 186 (+402.7%)
Mutual labels:  govuk
govuk-taxonomy-supervised-learning
Auto-tag govuk content to the collated legacy taxonomies
Stars: ✭ 22 (-40.54%)
Mutual labels:  govuk
publishing-api
API to publish content on GOV.UK
Stars: ✭ 29 (-21.62%)
Mutual labels:  govuk
govuk crawler worker
A worker that will consume GOV.UK URLs from a message queue and crawl them, saving the output to disk
Stars: ✭ 17 (-54.05%)
Mutual labels:  govuk
smokey
Smoke tests for GOV.UK
Stars: ✭ 42 (+13.51%)
Mutual labels:  govuk
govuk-terraform-provisioning
**DEPRECATED** Terraform configuration and utilities to provision parts of the GOV.UK AWS Infrastructure
Stars: ✭ 17 (-54.05%)
Mutual labels:  govuk
sketch wireframing kit
Quick Sketchapp wireframing tool for UK government digital services
Stars: ✭ 74 (+100%)
Mutual labels:  govuk
govuk-components
Lightweight components for developing with the GOV.UK Design System
Stars: ✭ 84 (+127.03%)
Mutual labels:  govuk
panopticon
Retired. App that holds some of the content on GOV.UK
Stars: ✭ 17 (-54.05%)
Mutual labels:  govuk
Govuk React
An implementation of the GOV.UK Design System in React using CSSinJS
Stars: ✭ 219 (+491.89%)
Mutual labels:  govuk
content-data-api
Data warehouse that stores content and content metrics to help content owners measure and improve content on GOV.UK
Stars: ✭ 13 (-64.86%)
Mutual labels:  govuk
need-o-tron
No description or website provided.
Stars: ✭ 35 (-5.41%)
Mutual labels:  govuk
govuk publishing components
A gem to document and distribute frontend components for GOV.UK applications
Stars: ✭ 45 (+21.62%)
Mutual labels:  govuk
finder-frontend
Serves finder and search pages for GOV.UK
Stars: ✭ 15 (-59.46%)
Mutual labels:  govuk

GOV.UK Docker

GOV.UK development environment using Docker.

diagram

The GOV.UK website uses a microservice architecture. Developing in this ecosystem is a challenge, due to the range of environments to maintain, both for the app being developed and its dependencies.

The aim of govuk-docker is to make it easy to develop any GOV.UK app. It achieves this by providing a variety of environments or stacks for each app, in which you can run commands, and the app itself.

RFC 106: Use Docker for local development describes the background for choosing Docker. See the list of projects which work with govuk-docker.

Installation

First make sure you have the following dependencies.

  • brew
  • git
  • A govuk directory in your home directory

Next, add the following line to your bash/zsh config.

# in ~/.bashrc or ~/.zshrc
export PATH=$PATH:${HOME}/govuk/govuk-docker/exe

Run echo $SHELL if you're not sure which shell you use. After saving, you will need to run source ~/.bashrc or source ~/.zshrc to apply this change to your current terminal session.

Now in ~/govuk , run the following setup commands.

git clone [email protected]:alphagov/govuk-docker.git
cd govuk-docker
bundle install
bin/setup

👉 Check the troubleshooting guide if you have a problem.

Then make sure you give Docker enough resources.

Running GOV.UK applications can be resource intensive. To give Docker more resources on Mac, click the Docker whale icon in the macOS menu bar, select 'Preferences'. We suggest the following minimum resources:

  • 6 CPUs
  • 12 GB RAM
  • 64GB+ Disk

Check out the how-to guide to customise your setup.

Usage

Do this the first time you work on a project:

make [app-name]

...where app-name is the name of the app you want to build. For example, if you want to make collections-publisher you would run:

make collections-publisher

👉 Check the troubleshooting guide if you have a problem.

Each project provides a number of 'stacks' for different use cases. You can see the stacks for a project in its config file. To provide consistency, all projects should follow these conventions for stacks:

The lite stack

This stack provides only the minimum number of dependencies to run the project code. This is useful for running the tests, or a Rails console, for example.

Do this to run the tests for a project:

govuk-docker run [app-name]-lite bundle exec rake

👉 Check the troubleshooting guide if you have a problem.

The app stack

This stack provides the dependencies necessary to run an app e.g. in a browser. If the app is a web app, you will then be able to visit it in your browser at app-name.dev.gov.uk.

Do this to start a GOV.UK web app:

govuk-docker up [app-name]-app

👉 Replicate data locally (or use the app-live stack).

👉 Check the troubleshooting guide if you have a problem.

The app-* stacks

Variations on the app stack are allowed where necessary such as:

  • app-draft: used for testing the authenticating-proxy against a draft version of the router app.
  • app-live: used to test a read-only frontend app against live GOV.UK APIs (avoids having to replicate data locally).

Some app stacks also depend on a worker stack, to run asynchronous tasks [example].

Resources

Contributing

Check out the CONTRIBUTING guide.

Licence

MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].