forked from TrueCloudLab/distribution
3069a04b8c
And move menu entry definition into a page that the user has no reason to navigate to Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
81 lines
2.5 KiB
Markdown
81 lines
2.5 KiB
Markdown
<!--[metadata]>
|
|
+++
|
|
title = "Running on OS X"
|
|
description = "Explains how to run a registry on OS X"
|
|
keywords = ["registry, on-prem, images, tags, repository, distribution, OS X, recipe, advanced"]
|
|
[menu.main]
|
|
parent="smn_recipes"
|
|
+++
|
|
<![end-metadata]-->
|
|
|
|
# OS X Setup Guide
|
|
|
|
## Use-case
|
|
|
|
This is useful if you intend to run a registry server natively on OS X.
|
|
|
|
### Alternatives
|
|
|
|
You can start a VM on OS X, and deploy your registry normally as a container using Docker inside that VM.
|
|
|
|
The simplest road to get there is traditionally to use the [docker Toolbox](https://www.docker.com/toolbox), or [docker-machine](/machine/index.md), which usually relies on the [boot2docker](http://boot2docker.io/) iso inside a VirtualBox VM.
|
|
|
|
### Solution
|
|
|
|
Using the method described here, you install and compile your own from the git repository and run it as an OS X agent.
|
|
|
|
### Gotchas
|
|
|
|
Production services operation on OS X is out of scope of this document. Be sure you understand well these aspects before considering going to production with this.
|
|
|
|
## Setup golang on your machine
|
|
|
|
If you know, safely skip to the next section.
|
|
|
|
If you don't, the TLDR is:
|
|
|
|
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
|
|
source ~/.gvm/scripts/gvm
|
|
gvm install go1.4.2
|
|
gvm use go1.4.2
|
|
|
|
If you want to understand, you should read [How to Write Go Code](https://golang.org/doc/code.html).
|
|
|
|
## Checkout the Docker Distribution source tree
|
|
|
|
mkdir -p $GOPATH/src/github.com/docker
|
|
git clone https://github.com/docker/distribution.git $GOPATH/src/github.com/docker/distribution
|
|
cd $GOPATH/src/github.com/docker/distribution
|
|
|
|
## Build the binary
|
|
|
|
GOPATH=$(PWD)/Godeps/_workspace:$GOPATH make binaries
|
|
sudo cp bin/registry /usr/local/libexec/registry
|
|
|
|
## Setup
|
|
|
|
Copy the registry configuration file in place:
|
|
|
|
mkdir /Users/Shared/Registry
|
|
cp docs/osx/config.yml /Users/Shared/Registry/config.yml
|
|
|
|
## Running the Docker Registry under launchd
|
|
|
|
Copy the Docker registry plist into place:
|
|
|
|
plutil -lint docs/osx/com.docker.registry.plist
|
|
cp docs/osx/com.docker.registry.plist ~/Library/LaunchAgents/
|
|
chmod 644 ~/Library/LaunchAgents/com.docker.registry.plist
|
|
|
|
Start the Docker registry:
|
|
|
|
launchctl load ~/Library/LaunchAgents/com.docker.registry.plist
|
|
|
|
### Restarting the docker registry service
|
|
|
|
launchctl stop com.docker.registry
|
|
launchctl start com.docker.registry
|
|
|
|
### Unloading the docker registry service
|
|
|
|
launchctl unload ~/Library/LaunchAgents/com.docker.registry.plist
|