Pinata: an experimental standalone Docker client
| pr | master | rc | beta | stable | |
|---|---|---|---|---|---|
| macOS | latest | latest | latest | latest | latest |
| Windows | latest | latest | latest | latest | latest |
| ( if you get Access Denied errors, it means nothing has been published to this channel yet ) |
To list all the versions: http://omakase.omakase.e57b9b5b.svc.dockerapp.io/
This is an experimental project to develop a new client for Docker, separately from the daemon or any other backend component.
By maintaining a standalone client, the goal is to:
- Allow for more rapid iteration on client functionality.
- Improve compatibility between different versions of the client and daemon.
- Add more features to the client without bloating the daemon-side components.
- Pave the way to simplifying the daemon code base, improving its quality and making its maintenance easier.
Versioning
The release cycle respects the following convention: X-Y[-Z] where:
-
Xis the version of the docker engine used as a base for the build. The build can be modified during the build process to fit better into the use-case ofDocker.app(ie. it won't usually be a drop-in replacement, but we will try to upstream our patches as quickly as possible). -
Yis an arbitrary string that we can use to define a version ofDocker.app, independently of the release cycle of docker engine. -
Zindicates the build channel (dev, test, master, release).Zis empty for releases.
For instance the first beta release of pinata has the version: 1.9.1-beta1. While on master channel (one build for each PR merged), it has the version: 1.9.1-beta1-master.
On OS X, the version is defined in XCode project's Info.plist file (key: CFBundleShortVersionString). There's also a build number, associated with CFBundleVersion key (set by CI).
In Xcode project, the version should use a suffix like -dev (1.9.1-beta1-dev). That suffix will be replaced/removed by CI.
INSTALL
Through HockeyApp
For Docker for Mac see the Docker.app installation guide and for Docker for Windows see the Docker installation guide
OSX Build
Check that your GOPATH is correctly set-up and clone this repository in
$GOPATH/src/github.com/docker/pinata.
Dependencies
As prerequisites, you need to have Xcode, homebrew and go installed.
To minimize build times, the dependencies are cached with this command
You only need to run it once or when an external dependency was updated
At the root of this repository, type:
make depends
When you add a new go dependency, add it in the GO_DEPS variable of the toplevel
Makefile.
Build
After a successful make depends, type:
make
If you are asked for the password to the dockerbuilder keychain, it is
docker4all.
Run
After a successful make depends and make, type:
make run
You will see the logs on stdout
Install
First, make sure you have uninstalled any previous installation of pinata with:
v1/mac/uninstall
Then, install with:
v1/mac/build/Docker.app/Contents/MacOS/docker-installer
Tests
You can run the tests by running:
make test
This is currently Mac only.
Windows Build
Latest msi builds :
Check that your GOPATH is correctly set-up and clone this repository in
$GOPATH/src/github.com/docker/pinata.
Dependencies
Install:
- Go 1.6
- Visual Studio 2015. The app builds with the free Community edition but the licensing for that edition doesn't allow its use for commercial, closed source work.
Once you installed the above, open a powershell.
Build
The main build is driven by the please.ps1 powershell script in the win
sub-directory.
cd <pinata_dir>/win
./please.ps1 package
will clean the build directory and build a new package (installer) in
the build sub-directory.
cd <pinata_dir>/win
./please.ps1 build
will build a new Docker.exe file but not the installer.
Troubleshooting
If you have an issue, please report it to the bugtracker with the output of:
pinata diagnose
This is currently Mac only.