?
This document uses PHP Chinese website manual Release
這個(gè)例子的目標(biāo)是向您展示如何使用Riak預(yù)安裝來(lái)構(gòu)建Docker鏡像。
創(chuàng)建一個(gè)名為Dockerfile
*
$ touch Dockerfile
接下來(lái),定義您想用來(lái)在上面構(gòu)建圖像的父圖像。我們將使用Docker Hub上提供的Ubuntu(tag:trusty
)
# Riak # # VERSION 0.1.1# Use the Ubuntu parent image provided by dotCloud FROM ubuntu:trusty
之后,我們安裝用于下載存儲(chǔ)庫(kù)設(shè)置腳本的curl,并下載安裝腳本并運(yùn)行它。
# Install Riak repository before we do apt-get update, so that update happens # in a single step RUN apt-get install -q -y curl && \ curl -fsSL https://packagecloud.io/install/repositories/basho/riak/script.deb | sudo bash
然后我們安裝并設(shè)置一些依賴關(guān)系:
supervisor
用于管理riak進(jìn)程。
riak=2.0.5-1
是編碼到版本2.0.5的Riak包
# Install and setup project dependencies RUN apt-get update && \ apt-get install -y supervisor riak=2.0.5-1RUN mkdir -p /var/log/supervisor RUN locale-gen en_US en_US.UTF-8COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
之后,我們修改了Riak的配置:
# Configure Riak to accept connections from any host RUN sed -i "s|listener.http.internal = 127.0.0.1:8098|listener.http.internal = 0.0.0.0:8098|" /etc/riak/riak.conf RUN sed -i "s|listener.protobuf.internal = 127.0.0.1:8087|listener.protobuf.internal = 0.0.0.0:8087|" /etc/riak/riak.conf
然后,我們公開(kāi)了Riak協(xié)議緩沖區(qū)和HTTP接口:
# Expose Riak Protocol Buffers and HTTP interfaces EXPOSE 8087 8098
最后,運(yùn)行supervisord
以便Riak開(kāi)始:
CMD ["/usr/bin/supervisord"]
創(chuàng)建一個(gè)名為的空文件supervisord.conf
。確保它與您的目錄級(jí)別相同Dockerfile
:
touch supervisord.conf
用下面的程序定義填充它:
[supervisord]nodaemon=true[program:riak]command=bash -c "/usr/sbin/riak console"numprocs=1autostart=trueautorestart=trueuser=riak environment=HOME="/var/lib/riak"stdout_logfile=/var/log/supervisor/%(program_name)s.log stderr_logfile=/var/log/supervisor/%(program_name)s.log
現(xiàn)在您應(yīng)該能夠?yàn)镽iak構(gòu)建一個(gè)Docker映像:
$ docker build -t "<yourname>/riak" .
Riak是一個(gè)分布式數(shù)據(jù)庫(kù)。許多生產(chǎn)部署至少包含五個(gè)節(jié)點(diǎn)。查看docker-riak項(xiàng)目詳細(xì)信息,了解如何使用Docker和Pipework部署Riak集群。