Core i7 class CPU recommended.
On Ubuntu Linux 14.04, install v4l2loopback driver from repository:
apt-get install -y v4l2loopback-dkms v4l2loopback-utils
..or from latest sources:
| def zookeeper: Future[Map[String, String]] = async { | |
| val writeback = ZooKeeper.WritebackPathPrefix.split("/").filterNot(_.isEmpty).toSeq | |
| def join(l: Seq[String]) = l.mkString("/") | |
| def nodes(parent: Seq[String], node: String): Seq[Seq[String]] = { | |
| (parent :+ node) match { | |
| case `writeback` => Seq() | |
| case path => path +: ZooKeeper.getChildren(join(path)).flatMap(node => nodes(path, node)) | |
| } | |
| } | |
| nodes(Seq(), services.ZooKeeperService.BasePath.stripPrefix("/")) |
| [Unit] | |
| Description=Docker Application Container Engine | |
| Documentation=http://docs.docker.io | |
| After=docker.socket | |
| Requires=docker.socket | |
| Requires=flannel.service | |
| After=flannel.service | |
| [Service] | |
| Environment="TMPDIR=/var/tmp/" |
| *.pyc |
Core i7 class CPU recommended.
On Ubuntu Linux 14.04, install v4l2loopback driver from repository:
apt-get install -y v4l2loopback-dkms v4l2loopback-utils
..or from latest sources:
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <errno.h> | |
| #include <string.h> | |
| #include <unistd.h> | |
| #include <sys/shm.h> | |
| int main(int argc, char**argv) | |
| { | |
| void *shm; |
| import os | |
| from fabric.api import * | |
| from fabric.operations import run, sudo, get, put | |
| from fabtools import require | |
| from time import sleep | |
| from ConfigParser import RawConfigParser | |
| from StringIO import StringIO | |
| # if passwordless sudo is required, please add | |
| # /etc/sudoers.d/01-cloudf |
We use progrium/registrator and yaronr/skydns (SkyDNS2) to publish information about Docker containers to DNS via A and SRV records. All nodes runs skydns and registrator, and first three nodes are inserted as NS-s into Route53 DNS for services.cluster-name.domain.io. Note, v4 registrator must be used until registrator/124 is resolved.
$ host -t srv mysql-1.services.deis.r53.acp.io deis-6-1.eu.r53.acp.io
Using domain server:
Name: deis-6-1.eu.r53.acp.io
Address: 54.171.239.227#53
Aliases:
| thread '<main>' panicked at 'index out of bounds: the len is 1339 but the index is 1339', /build/buildd/rust-nightly-201503180407~1ae32de~trusty/src/libcollections/vec.rs:1336 | |
| stack backtrace: | |
| 1: 0x7feb92fed9d4 - sys::backtrace::write::h781dfe74347a79cb10C | |
| 2: 0x7feb92ff15df - panicking::on_panic::hafa4f854a38dccfathJ | |
| 3: 0x7feb92fe248a - rt::unwind::begin_unwind_inner::hea0351e9a595ba7f2XI | |
| 4: 0x7feb92fe2b41 - rt::unwind::begin_unwind_fmt::he1aaa061d26e63b9DWI | |
| 5: 0x7feb92ff0fc7 - rust_begin_unwind | |
| 6: 0x7feb9301cb94 - panicking::panic_fmt::h6d00c31e190682d1Tku | |
| 7: 0x7feb9301defc - panicking::panic_bounds_check::hf4aded192863f504Zju | |
| 8: 0x7feb92f07536 - vec::Vec<T>.Index<usize>::index::h1583112471073907091 |
| @Grapes([ | |
| @Grab('org.codehaus.gpars:gpars:1.2.1'), | |
| @Grab('com.github.groovy-wslite:groovy-wslite:1.1.0'), | |
| @Grab('io.ratpack:ratpack-groovy:0.9.15'), | |
| //@Grab('io.ratpack:ratpack-jackson:0.9.15'), | |
| @Grab('org.slf4j:slf4j-simple:1.7.12')]) | |
| import static groovyx.gpars.actor.Actors.actor | |
| import static ratpack.groovy.Groovy.ratpack | |
| import ratpack.http.client.HttpClient |
| @Grapes([ | |
| @Grab('io.reactivex:rxgroovy:1.0.0'), | |
| @Grab('org.codehaus.gpars:gpars:1.2.1'), | |
| @Grab('com.github.groovy-wslite:groovy-wslite:1.1.0')]) | |
| import groovy.transform.EqualsAndHashCode | |
| import groovy.transform.ToString | |
| import rx.Observable | |
| import rx.Subscriber | |
| import rx.schedulers.Schedulers |