Saturday, September 24, 2016

docker registry using oss as backend

Dockerfile:

FROM registry:2.3
ENV REGISTRY_STORAGE=oss
ENV REGISTRY_STORAGE_OSS_ACCESSKEYID=
ENV REGISTRY_STORAGE_OSS_ACCESSKEYSECRET=
ENV REGISTRY_STORAGE_OSS_REGION=oss-cn-beijing
ENV REGISTRY_STORAGE_OSS_BUCKET=docker-registry-ano
ENV REGISTRY_STORAGE_OSS_ENDPOINT=vpc100-oss-cn-beijing.aliyuncs.com
ENV REGISTRY_STORAGE_OSS_INTERNAL=true
ENV REGISTRY_STORAGE_OSS_SECURE=false

$docker build -t registry-oss-ano:0.1 .
#Not using localhost ensured that ipv4 was used
$docker -D run   -p 127.0.0.1:80:5000 registry-oss-ano:0.1

REGISTRY_STORAGE_OSS_INTERNAL=true(connect to internal oss timeout)

panic: Get http://docker-registry-anno.oss-cn-beijing-internal.aliyuncs.com/?delimiter=&marker=&max-keys=1&prefix=: dial tcp 10.157.164.6:80: getsockopt: connection timed out
2016-09-24 16:49:18


Sunday, September 18, 2016

Swarm basic

#Set up a discovery backend
docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap

#Create Swarm cluster

#debug
docker run -d -p 4000:4000 swarm --debug manage -H :4000 --replication --advertise 192.168.13.159:4000 consul://192.168.13.159:8500
docker run -d -p 5000:4000 swarm manage -H :5000 --replication --advertise 192.168.13.159:5000 consul://192.168.13.159:8500


docker run -d -p 6000:4000 swarm manage -H :6000 --replication --advertise 192.168.13.159:6000 consul://172.30.0.161:8500

#add a node
docker run -d swarm --debug join --advertise=192.168.13.159:2375 consul://192.168.13.159:8500



# use the regular docker cli
$ docker -H tcp://<swarm_ip:swarm_port> info
$ docker -H tcp://<swarm_ip:swarm_port> run ...
$ docker -H tcp://<swarm_ip:swarm_port> ps
$ docker -H tcp://<swarm_ip:swarm_port> logs ...
$ docker -H tcp://<swarm_ip:swarm_port> network ls
...

# list nodes in your cluster
$ docker run --rm swarm list token://<cluster_id>

Thursday, September 8, 2016

dropwizard in docker

java -jar target/dropwiz.jar server application-config.yml


FROM java:8
MAINTAINER Victor Martinez
RUN mkdir -p /dw/project/src/app
WORKDIR /dw/project/src/app
EXPOSE 8080 8081
COPY . /dw/project/src/app



dropwizard_container:
  image: dropwizard_image
  command: java -jar target/dropwizard-1.0.0-SNAPSHOT.jar server src/main/resources/config.yml
  ports:
    - 8080:8080
    - 8081:8081

Tuesday, September 6, 2016

golang

Go does not have classes. However, you can define methods on types.

go f(x,y,z)

The evaluation of f, x, y, and z happens in the current goroutine(just evaluation of f,x,y,z)


and the execution of f happens in the new goroutine(execution f).



  • $GOPATH 默认采用和 $GOROOT 一样的值,但从 Go 1.1 版本开始,你必须修改为其它路径。它可以包含多个包含 Go 语言源码文件、包文件和可执行文件的路径,而这些路径下又必须分别包含三个规定的目录:srcpkg 和 bin,这三个目录分别用于存放源码文件、包文件和可执行文件。

how to debug gofabric8
clone fabric8 to $GOPATH/src/github.com/fabric8io/gofabric8

$git clone git@github.com:fabric8io/gofabric8.git         $GOPATH/src/github.com/fabric8io/gofabric8
$make

$go get github.com/derekparker/delve/cmd/dlv
$export PATH=$GOPATH/bin:$PATH
$dlv debug
(dlv) break main.main

command-line arguments for run/debug

liteide:  build config ->TARGETARGS

https://github.com/visualfc/liteide/issues/67