summaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
authorQiLiang <liangqi1@huawei.com>2018-03-31 17:21:30 +0800
committerQiLiang <liangqi1@huawei.com>2018-04-04 09:49:43 +0800
commitc68b7b8380ea8d2ac4da6b4739c6b8e157bb952b (patch)
tree73f89ef0371cb77cd4f679db7ce890c6202a9253 /docker
parent67b7fb49e6ea6ac9c2547af263355e5f1aeade42 (diff)
Add clover initial docker image build script
- install dependent deb/pip packages - install basic tools istioctl, kubectl - install clover source code - build/upload docker image script - update requirements.txt - update module import path - To use this image use need setup kube-config file. e.g. `docker run -v /root/config:/root/.kube/config -it clover bash` Change-Id: I91044bb99ce8e2b785ef03212d961a97b3d42233 Signed-off-by: QiLiang <liangqi1@huawei.com>
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile35
-rwxr-xr-xdocker/build.sh18
-rwxr-xr-xdocker/setup.sh38
3 files changed, 91 insertions, 0 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 0000000..c2dcd84
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,35 @@
+# Copyright (c) Authors of Clover
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+
+FROM ubuntu:16.04
+LABEL image=opnfv/clover
+ARG BRANCH=master
+
+# GIT repo directory
+ENV REPOS_DIR="/home/opnfv/repos"
+
+# Clover repo
+ENV CLOVER_REPO_DIR="${REPOS_DIR}/clover"
+
+# Install basic dependency
+RUN apt-get update \
+ && apt-get install -y git python-setuptools python-pip curl apt-transport-https \
+ && apt-get -y autoremove && apt-get clean \
+ && pip install --upgrade pip
+
+# Fetch source code
+RUN mkdir -p ${REPOS_DIR}
+COPY ./ ${CLOVER_REPO_DIR}
+
+# Install tools like istioctl & kubectl
+RUN ${CLOVER_REPO_DIR}/docker/setup.sh
+
+# Install clover package
+RUN cd ${CLOVER_REPO_DIR} && pip install ./
+
+# Set work directory
+WORKDIR ${CLOVER_REPO_DIR}
diff --git a/docker/build.sh b/docker/build.sh
new file mode 100755
index 0000000..6b59647
--- /dev/null
+++ b/docker/build.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+#
+# Copyright (c) Authors of Clover
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+
+CLOVER_BASE_DIR=$(cd ${BASH_SOURCE[0]%/*}/..;pwd)
+IMAGE_PATH=${IMAGE_PATH:-"localhost:5000"}
+IMAGE_NAME=${IMAGE_NAME:-"clover"}
+
+cd $CLOVER_BASE_DIR
+docker build -f docker/Dockerfile -t $IMAGE_NAME .
+docker tag $IMAGE_NAME $IMAGE_PATH/$IMAGE_NAME
+docker push $IMAGE_PATH/$IMAGE_NAME
diff --git a/docker/setup.sh b/docker/setup.sh
new file mode 100755
index 0000000..459f44b
--- /dev/null
+++ b/docker/setup.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+#
+# Copyright (c) Authors of Clover
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+
+set -ex
+
+# Get latest istio version, refer: https://git.io/getLatestIstio
+if [ "x${ISTIO_VERSION}" = "x" ] ; then
+ ISTIO_VERSION=$(curl -L -s https://api.github.com/repos/istio/istio/releases/latest | \
+ grep tag_name | sed "s/ *\"tag_name\": *\"\(.*\)\",*/\1/")
+fi
+
+ISTIO_DIR_NAME="istio-$ISTIO_VERSION"
+
+cd /usr/local/
+curl -L https://git.io/getLatestIstio | sh -
+mv $ISTIO_DIR_NAME istio-source
+
+# Install kubectl
+curl -s http://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
+cat << EOF > /etc/apt/sources.list.d/kubernetes.list
+deb http://apt.kubernetes.io/ kubernetes-xenial main
+EOF
+
+apt-get update \
+ && apt-get install -y --allow-downgrades kubectl=1.9.1-00 \
+ && apt-get -y autoremove \
+ && apt-get clean
+
+# Persistently append istioctl bin path to PATH env
+echo 'export PATH="$PATH:/usr/local/istio-source/bin"' >> ~/.bashrc
+echo "source <(kubectl completion bash)" >> ~/.bashrc