Browse Source

Merge pull request #5709 from gyuho/docker

update: Dockerfile, documentation
Gyu-Ho Lee 9 years ago
parent
commit
eaa72dfa0b
3 changed files with 18 additions and 9 deletions
  1. 9 1
      Dockerfile
  2. 8 1
      Documentation/op-guide/container.md
  3. 1 7
      scripts/build-docker

+ 9 - 1
Dockerfile

@@ -1,2 +1,10 @@
-FROM golang:onbuild
+FROM alpine:latest
+
+ADD bin/etcd /usr/local/bin/
+ADD bin/etcdctl /usr/local/bin/
+RUN mkdir -p /var/etcd/
+
 EXPOSE 2379 2380
 EXPOSE 2379 2380
+
+# Define default command.
+CMD ["/usr/local/bin/etcd"]

+ 8 - 1
Documentation/op-guide/container.md

@@ -23,6 +23,7 @@ CLUSTER=${NAME_1}=http://${HOST_1}:2380,${NAME_2}=http://${HOST_2}:2380,${NAME_3
 THIS_NAME=${NAME_1}
 THIS_NAME=${NAME_1}
 THIS_IP=${HOST_1}
 THIS_IP=${HOST_1}
 sudo docker run --net=host --name etcd quay.io/coreos/etcd:${ETCD_VERSION} \
 sudo docker run --net=host --name etcd quay.io/coreos/etcd:${ETCD_VERSION} \
+	/usr/local/bin/etcd \
     --data-dir=data.etcd --name ${THIS_NAME} \
     --data-dir=data.etcd --name ${THIS_NAME} \
 	--initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 \
 	--initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 \
 	--advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 \
 	--advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 \
@@ -33,6 +34,7 @@ sudo docker run --net=host --name etcd quay.io/coreos/etcd:${ETCD_VERSION} \
 THIS_NAME=${NAME_2}
 THIS_NAME=${NAME_2}
 THIS_IP=${HOST_2}
 THIS_IP=${HOST_2}
 sudo docker run --net=host --name etcd quay.io/coreos/etcd:${ETCD_VERSION} \
 sudo docker run --net=host --name etcd quay.io/coreos/etcd:${ETCD_VERSION} \
+	/usr/local/bin/etcd \
     --data-dir=data.etcd --name ${THIS_NAME} \
     --data-dir=data.etcd --name ${THIS_NAME} \
 	--initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 \
 	--initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 \
 	--advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 \
 	--advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 \
@@ -43,6 +45,7 @@ sudo docker run --net=host --name etcd quay.io/coreos/etcd:${ETCD_VERSION} \
 THIS_NAME=${NAME_3}
 THIS_NAME=${NAME_3}
 THIS_IP=${HOST_3}
 THIS_IP=${HOST_3}
 sudo docker run --net=host --name etcd quay.io/coreos/etcd:${ETCD_VERSION} \
 sudo docker run --net=host --name etcd quay.io/coreos/etcd:${ETCD_VERSION} \
+	/usr/local/bin/etcd \
     --data-dir=data.etcd --name ${THIS_NAME} \
     --data-dir=data.etcd --name ${THIS_NAME} \
 	--initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 \
 	--initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 \
 	--advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 \
 	--advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 \
@@ -50,5 +53,9 @@ sudo docker run --net=host --name etcd quay.io/coreos/etcd:${ETCD_VERSION} \
 	--initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}
 	--initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}
 ```
 ```
 
 
-TODO: current etcd docker container is shipped with etcdctl, but the `ETCDCTL_API` environment value is not set inside the container. So currently there's no way to use etcdctl for v3 directly from the container (e.g. `docker exec etcd /etcdctl put foo bar` won't work).
+To run `etcdctl` using API version 3:
+
+```
+docker exec etcd /bin/sh -c "export ETCDCTL_API=3 && /usr/local/bin/etcdctl put foo bar"
+```
 
 

+ 1 - 7
scripts/build-docker

@@ -8,12 +8,6 @@ IMAGEDIR=${BUILDDIR}/image-docker
 mkdir -p ${IMAGEDIR}
 mkdir -p ${IMAGEDIR}
 cp ${BINARYDIR}/etcd ${BINARYDIR}/etcdctl ${IMAGEDIR}
 cp ${BINARYDIR}/etcd ${BINARYDIR}/etcdctl ${IMAGEDIR}
 
 
-cat <<DF > ${IMAGEDIR}/Dockerfile
-FROM scratch
-ADD etcd /
-ADD etcdctl /
-EXPOSE 2379 2380
-ENTRYPOINT ["/etcd"]
-DF
+cat ./Dockerfile > ${IMAGEDIR}/Dockerfile
 
 
 docker build -t quay.io/coreos/etcd:${1} ${IMAGEDIR}
 docker build -t quay.io/coreos/etcd:${1} ${IMAGEDIR}