This is early stuff. You've been warned.
Wharf is a successor of ContainerOps platform whose concept is built upon the DevOps, which means it's a higher level solution over traditional approach and DevOps, but not an alternative. The ultimate goal of Wharf is building a pipeline form development to deployment & operations through Docker, Rocket and other container solutions.
ContainerOps is all about product workflow. Wharf builds and runs a container image you defined whenever new code is being pushed, along with corresponding dependence system. But it's not all, the image will also work with continuous integration, or continuous deployment with Rocket, LXC or Atomic, etc. Wharf is focusing on the continuous changes from version control system to production environment.
Now, it's time to announce our pre-release and core of ContainerOps version of Wharf, you can replace Docker Registry with it. Please make sure you know that Wharf is currently under alpha stage.
Our team is still working really hard for your happiness with the complete version of ContainerOps platform, which comes in next few months.
Clone code into directory $GOPATH/src/githhub.com/dockercn and then exec commands:
go get -u github.com/astaxie/beego go get -u github.com/codegangsta/cli go get -u github.com/siddontang/ledisdb/ledis go get -u github.com/garyburd/redigo/redis go get -u github.com/shurcooL/go/github_flavored_markdown go get -u github.com/satori/go.uuid go get -u github.com/nfnt/resize go build
- Docker Registry V2 support.
- Docker Hub repository sync automatically.
- Rocket CAS support.
- More relative pages.
Please add a runtime config file named bucket.conf under wharf/conf before starting wharf service.
runmode = dev enablehttptls = true httpsport = 443 httpcertfile = cert/containerops.me/containerops.me.crt httpkeyfile = cert/containerops.me/containerops.me.key gravatar = data/gravatar [docker] BasePath = /tmp/registry StaticPath = files Endpoints = containerops.me Version = 0.8.0 Config = prod Standalone = true OpenSignup = false [ledisdb] DataDir = /tmp/ledisdb DB = 8 [log] FilePath = /tmp FileName = containerops.log [session] Provider = ledis SavePath = /tmp/session
- Application run mode must be
devorprod. - If you use Nginx as front end, make sure
enablehttptlsisfalse. - If run with TLS and without Nginx, set
enablehttptlsistrueand set the file and key file. - The
BasePathis whereDockerandRocketimage files are stored. Endpointsis very important parameter, set the same value as your domain or IP. For example, you runwharfwith domainxxx.org, thenEndpointsshould bexxx.org.DataDiris whereledisdata is located.- The
wharfsession provider default isledis, theProviderandSavePathis session data storage path. - The bucket.conf should be in folder conf with app.conf. If you wanna change the bucket.conf name, you should be modify the include bucket.conf in theapp.conf last line.
It's a Nginx config example. You can change client_max_body_size what limited upload file size.
You should copy containerops.me keys from cert/containerops.me to /etc/nginx, then run Wharf with http mode and listen on 127.0.0.1:9911.
upstream wharf_upstream { server 127.0.0.1:9911; } server { listen 80; server_name containerops.me; rewrite ^/(.*)$ https://containerops.me/1ドル permanent; } server { listen 443; server_name containerops.me; access_log /var/log/nginx/containerops-me.log; error_log /var/log/nginx/containerops-me-errror.log; ssl on; ssl_certificate /etc/nginx/containerops.me.crt; ssl_certificate_key /etc/nginx/containerops.me.key; client_max_body_size 1024m; chunked_transfer_encoding on; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_set_header Connection ""; proxy_http_version 1.1; location / { proxy_pass http://wharf_upstream; } }
Run behind Nginx:
./wharf web --address 127.0.0.1 --port 9911
Run directly:
./wharf web --address 0.0.0.0 --port 80
- Add containerops.com in your
hostsfile like192.168.1.66 containerops.me. - Registry a user at
https://containerops.me/auth. - Login with new user use
docker login containerops.com. - Then
pushwithdocker push github.com/somebody/ubuntu. - You could
pullwithdocker pull -a github.com/somebody/ubuntu. - Work fun!
Please submit issue at https://github.com/dockercn/wharf/issues
- Meaglith Ma https://twitter.com/genedna
- Allen Chen https://github.com/chliang2030598
- Leo Meng https://github.com/fivestarsky
- Unknwon https://twitter.com/joe2010xtmf
Wharf is licensed under the MIT License.
Vessel A continuous integration system build with Docker.
Rudder A Docker client of Golang.