gpt4 book ai didi

docker - 如何将CouchDB服务器添加到Docker创建文件中

转载 作者:行者123 更新时间:2023-12-02 20:17:21 30 4
gpt4 key购买 nike

我有一个像这样的docker文件:

FROM ubuntu:12.04
MAINTAINER me <me@c.com>

RUN apt-get -y update
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install supervisor \
apache2 \
mysql-server \
php5 \
libapache2-mod-php5 \
php5-mysql \
php5-mcrypt

#ssh
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:root' | chpasswd
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

EXPOSE 22 80
ADD ./supervisord.conf /etc/supervisor/conf.d/supervisord.conf
CMD ["/usr/bin/supervisord"]

我的问题是如何在该docker文件中添加一个benchdb服务器?

我可以从这里获取内置的ouchdb docker镜像: https://hub.docker.com/r/klaemo/couchdb/,但是我如何创建一个这样的镜像呢?我找不到有关该过程的任何文档!

我花了3个小时尝试谷歌搜索,但是没有运气,所以即使这是一个转储问题,我也要冒险问!

最佳答案

您想要在Docker容器中使用特定版本的Couchdb吗?
如果没有,因为您使用Ubuntu 12.04作为基础镜像,因此可以通过将couchdb添加到apt-get列表中来轻松地从Ubuntu 12.04/precise [universe] repository中获取ouchdb 1.0.1二进制文件:

FROM ubuntu:12.04
MAINTAINER me <me@c.com>

RUN apt-get -y update
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install supervisor \
apache2 \
mysql-server \
php5 \
libapache2-mod-php5 \
php5-mysql \
php5-mcrypt \
couchdb
#[--Rest of your dockerfile goes here unchanged--]

您也可以使用Apache CouchDB团队维护的 PPA,以根据正式发布的tar球获取基础镜像的最新稳定版本。对于此选项,您可以使用以下dockerfile:
# To install the ppa finder tool in your docker container
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install python-software-properties
RUN add-apt-repository ppa:couchdb/stable -y
RUN apt-get -y update
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install supervisor \
apache2 \
mysql-server \
php5 \
libapache2-mod-php5 \
php5-mysql \
php5-mcrypt \
couchdb
#[--Rest of your dockerfile goes here unchanged--]

如果您想在Docker容器中使用最新版本或特定版本的ouchdb,则可能必须从源代码中构建ouchdb。请注意,此方法将需要您在容器上安装更多软件包( g++ erlang-dev erlang-manpages erlang-base-hipe erlang-eunit, libmozjs185-dev libicu-dev libcurl4-gnutls-dev libtool),以便能够从源代码构建ouchdb。但是,您可能可以清除/删除仅生成长沙发数据库所需的软件包。依赖性的完整列表可以在 official couchdb build wiki on apache上找到。如果您确实想要最新版本,则可以引用此 dockerfile并相应地添加更新您的dockerfile。这是一个完整的dockerfile [未测试],方便您使用:
FROM ubuntu:12.04
MAINTAINER me <me@c.com>
ENV COUCHDB_VERSION master
RUN groupadd -r couchdb && useradd -d /usr/src/couchdb -g couchdb couchdb
# download dependencies
RUN apt-get update -y -qq && apt-get install -y --no-install-recommends \
build-essential \
erlang-dev \
erlang-manpages \
erlang-base-hipe \
erlang-eunit \
erlang-nox \
erlang-xmerl \
erlang-inets \
libmozjs185-dev \
libicu-dev \
libcurl4-gnutls-dev \
libtool
RUN cd /usr/src && git clone https://git-wip-us.apache.org/repos/asf/couchdb.git \
&& cd couchdb && git checkout $COUCHDB_VERSION \
&& cd /usr/src/couchdb && ./configure && make
# You can optionally purge/remove the packages you installed to build the couchdb from source.
# permissions
RUN chmod +x /usr/src/couchdb/dev/run && chown -R couchdb:couchdb /usr/src/couchdb
USER couchdb
EXPOSE 5984 15984 25984 35984 15986 25986 35986
#[--Rest of your dockerfile can go here as required--]

关于docker - 如何将CouchDB服务器添加到Docker创建文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41657570/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com