User-friendly Docker based Continuous integration and a bit of orchestration with Node.js Previously at paypac/node-concierge
Documentation is available at the-concierge.github.io
- It can manage local or remote Docker hosts
- Provides a simple Web UI for controlling containers, hosts, images and applications
- Builds Docker images from Git repository branches or tags
- It uses the Dockerfile provided or a custom Dockerfile elsewhere in the repository to build a Docker image
- It pushes images to a Docker registry
- Allows configurable creation of containers from images
- Monitors memory and CPU usage of containers
See the Contribution Guide
After starting the concierge:
- Create a new
Host - Set the Vanity hostname to
localhost,127.0.0.1or any other hostname your machine uses - That's it!
- Docker Registry (Optional)
- The registry isn't needed for the Concierge to run
- This registry should be private. I.e., only accessible inside a private network
- NodeJS 6.4+
- This is to use the native V8 debugger
CONCIERGE_DB_PATH: The path to store the application's SQLite databaseCONCIERGE_PORT: The port for the HTTP server
path: Location for the SQLite databaseport: Port for the HTTP API
# E.g.
> the-concierge --path=/Users/me/concierge.sqlite --port=3141Install globally using NPM
When used a command line utility, the Concierge uses PM2 and is run as a daemon.
> npm install the-concierge -g
> the-concierge start
> the-concierge statusUse the public Docker image
# Specify the flag below to keep a local copy of the Concierge SQLite database
# -v /your/host/folder:/concierge/db
# With access to your local Docker socket
> docker run -dt -p 3141:3141 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name concierge theconcierge/concierge:latest
# Without access to your local Docker socket
> docker run -dt -p 3141:3141 --restart=always --name concierge theconcierge/concierge:latestBuild and run manually
- Clone the repository
- Build the project with
yarnornpm - With
yarn:yarnyarn build
- With
npmnpm installnpm run build
Running
npm startornode .
Configuration Configure the Docker registry URL
- Navigate to the
ConfigurationView - Set
Docker: Registry URLto the URL of the Docker Registry - See below for instruction for setting up a Docker Registry
You can use the Concierge to pull and run the Docker Registry
- Go to the
Imagesview - Click on
Pull Image - Enter image name
registyand taglatest - Click
Pull
- The image will automatically appear in the Images list once it has been downloaded
- Click
Runon theregistry:latestimage in the Images list - Ensure the
5000port is exposed
- It is highly recommended to provide a fixed port
In package.json there is create-registry script provided. It will:
- Create a certificate
- Create a container from
registry:latestand use the previously created certificates
The simplest way to do this is to use the public Docker image.
sudo docker pull registry:latestsudo docker run -d -p 5000:5000 --name=registry -v /var/registry:/var/lib/registry --restart=unless-stopped registry:latest
-d
detached mode. The terminal used to execute the command won't be attached to the new container input/output.
-p hostPort:containerPort
exposed port. allows all hosts and concierges to connect to the registry.
--name
human readable name of the container
--restart=unless-stopped
always restart the container except at startup if the container has been manually stopped
-v hostPath/containerPath
store data from the containerPath on the host at hostPath
registry:latest
the name and tag of the Docker image we are using
To create/build an image, the following is required:
- At least one Host
- At least one Application
- (Optional) A private registry is configured
- This is required to pushing images to your internal registry after a successful build
At least one Host is required to create Containers and to build/push images.
See Host.md
At least one Application should be set up.
See Application.md