This repository helps keep Apiary environment, services and libraries consistent and in sync.
Each directory has an area of responsibility and the libraries should derive from the respective image.
To keep the image size to its minimum, images are usually derived from minimal Debian image (apiaryio/debian-minimal) or Alpine Linux.
Libraries use the minimal stack available.
Some of the images use tags to differentiate between versions of an underlying library/system, such as apiaryio/coreapp image might be built on different Node.js versions. If this is the case, each tag has a separate Dockerfile in a folder with a tag name:
./coreapp
./coreapp/0.10/Dockerfile
./coreapp/0.12/Dockerfile
-
Drill into the respective directory
-
If doing major/arch change, update
REFRESHED_AT
in the Dockerfile -
Build the Docker image with the tag expressed below:
$ (sudo) docker build -t "apiaryio/$name:$tag" .
-
Upload it to DockerHub
$ (sudo) docker push -t "apiaryio/$name:$tag"
-
When building Apiary app, use the proper
FROM:
directive inside yourDockerfile
- Create a new repository for
apiaryio
in DockerHub. - Set Collaborators for that repository to SRE with admin rights.
- Add a folder with the image name to this repository structure, e.g.
coreapp
- If multiple versions are needed, add subfolders with the tag names to the image folder, e.g.
8-chrome-stable
. - Build your image locally with
$ (sudo) docker build -t "apiaryio/$name:$tag" .
to make sure it works. You can skip the$tag
and thenlatest
will be used by default. - Log in to Docker Hub using
$ docker login
from the CLI if you haven't already. - If the image was built correctly, push it to the repository with
$ (sudo) docker push -t "apiaryio/$name:$tag"
Images are built automatically on Wercker. Builds on master
branch include a deploy step with pushing the built
images to DockerHub. If you add a new image as described above, your image will get built and pushed automatically once the changes are merged.
Dredd is an HTTP API testing tool. You can find out more about it at its documentation or its code repository. Its Docker image apiaryio/dredd has been moved to a separate repository.