Here are the steps to install SODA Multi Cloud service in a containerized local environment .
The installation is tested on Ubuntu 16.04 and Ubuntu 18.04, please make sure to use the right one. Root user is suggested for the installation.
Install following packages:
apt-get install -y libltdl7 libseccomp2 git curl wget make
Install docker:
wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_18.03.1~ce-0~ubuntu_amd64.deb
dpkg -i docker-ce_18.03.1~ce-0~ubuntu_amd64.deb
Check golang version information: SODA multi-cloud needs go version 1.13.x
Example:
root@proxy:~# go version
go version go1.13.9 linux/amd64
You can install golang by executing commands below: [Using 1.13.9 here for example]
wget https://storage.googleapis.com/golang/go1.13.9.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.13.9.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile
echo 'export GOPATH=$HOME/gopath' >> /etc/profile
source /etc/profile
Download and install the latest version of Docker Compose:
curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# docker-compose --version
docker-compose version 1.22.0, build 1719ceb
Download the source code:
mkdir -p /root/gopath/src/github.com/sodafoundation/
git clone https://github.com/sodafoundation/multi-cloud.git
cd /root/gopath/src/github.com/sodafoundation/multi-cloud
Make and build the docker image
make docker
Execute docker-compose up -d
to start multi-cloud local cluster, the successful result is supposed to be as follows:
# docker-compose up -d
Creating redis ... done
Creating multi-cloud_block_1_87f15fb3fcf4 ... done
Creating tidb ... done
Creating multi-cloud_zookeeper_1_77bbf2cb55a6 ... done
Creating multi-cloud_datastore_1_2341f44ebbba ... done
Creating multi-cloud_file_1_4885d7d3334d ... done
Creating multi-cloud_backend_1_5ab6fd6feed4 ... done
Creating multi-cloud_s3api_1_395c90ae45c3 ... done
Creating multi-cloud_api_1_437a019a9278 ... done
Creating multi-cloud_s3_1_5cf4e4514669 ... done
Creating multi-cloud_kafka_1_ff762483f0b6 ... done
Creating multi-cloud_dataflow_1_592ca1c6f730 ... done
Creating multi-cloud_datamover_1_390d343d0e7c ... done
To check the installation status run the command docker ps
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bbe74a5359eb sodafoundation/multi-cloud-dataflow "/dataflow" 40 seconds ago Up 39 seconds multi-cloud_dataflow_1_8ce4de44c4a7
e18133da2d9f sodafoundation/multi-cloud-datamover "/datamover" 40 seconds ago Up 39 seconds multi-cloud_datamover_1_1ae5af80e61f
ec8052d3db15 wurstmeister/kafka:2.11-2.0.1 "start-kafka.sh" 41 seconds ago Up 39 seconds 0.0.0.0:9092->9092/tcp multi-cloud_kafka_1_74c5e392fd7d
5fb7560159b2 sodafoundation/multi-cloud-s3 "/initdb.sh" 41 seconds ago Up 40 seconds multi-cloud_s3_1_59cd2512722b
b28213c1ddec sodafoundation/multi-cloud-backend "/backend" 42 seconds ago Up 39 seconds multi-cloud_backend_1_a67a449c92a5
a47ec4ef770b sodafoundation/multi-cloud-file "/file" 42 seconds ago Up 40 seconds multi-cloud_file_1_cd84c1c9dad3
be2b170b2d68 sodafoundation/multi-cloud-api "/api" 42 seconds ago Up 41 seconds 0.0.0.0:8090->8090/tcp multi-cloud_s3api_1_4698613dfd2e
f0f2419b98db sodafoundation/multi-cloud-api "/api" 42 seconds ago Up 41 seconds 0.0.0.0:8089->8089/tcp multi-cloud_api_1_aacf7b9a5141
ad7a85f51343 wurstmeister/zookeeper "/bin/sh -c '/usr/sb…" 42 seconds ago Up 41 seconds 22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp multi-cloud_zookeeper_1_68df196d327a
3539d1a91298 mongo "docker-entrypoint.s…" 42 seconds ago Up 41 seconds 0.0.0.0:27017->27017/tcp multi-cloud_datastore_1_a2f8fb0deb9d
0722d5174b8f pingcap/tidb:v2.1.16 "/tidb-server --stor…" 42 seconds ago Up 41 seconds 0.0.0.0:4000->4000/tcp, 0.0.0.0:10080->10080/tcp tidb
e03e03d88dcb sodafoundation/multi-cloud-block "/block" 42 seconds ago Up 40 seconds multi-cloud_block_1_7adafa5c5b8d
edc2036f5e1f redis "docker-entrypoint.s…" 42 seconds ago Up 41 seconds 0.0.0.0:6379->6379/tcp redis