将配置文件传递到Bitbucket管道上的Docker容器

时间:2019-06-15 20:30:08

标签: mongodb docker bitbucket-pipelines

我想在Bitbucket管道上使用预先配置的mongodb提供服务。

问题在于mongodb必须配置为TSL / SSL身份验证,这要求带有证书和密钥的.pem文件位于容器内。

以下是必须传递到docker容器的配置文件示例:

net:
   ssl:
      mode: requireSSL
      PEMKeyFile: /etc/ssl/mongodb.pem
      CAFile: /etc/ssl/caToValidateClientCertificates.pem
systemLog:
   destination: file
   path: "/var/log/mongodb/mongod.log"
   logAppend: true
storage:
   dbPath: "/var/lib/mongodb"
processManagement:
   fork: true
net:
   bindIp: localhost,mongodb0.example.net
   port: 27017

从上面的配置文件中可以看到,我还需要将* .pem文件传递到容器,以便mongodb在启动时可以选择它们。

CMD ["mongod", "--config", "/directory/with/config/mongodb.conf"]

因此,如果我们总结以上所述,我需要一种简单的机制,将文件通过bitbucket管道传递到docker容器。

更新: 我现在使用的解决方法是在容器内获取.pem文件,但它仅在本地有效:

我为mongodb服务使用以下Dockerfile:

FROM mongo

VOLUME ["/data/db"]
VOLUME ["/share"]

# Define working directory.
WORKDIR /data

EXPOSE 27017
EXPOSE 28017

RUN touch /var/log/mongodb.log 

ENTRYPOINT ["mongod", "--sslMode", "requireSSL", "--sslCAFile", "/share/rootCA.pem", "--sslPEMKeyFile", "/share/mongodb.pem", "--sslPEMKeyPassword", "myepicpassword", "--logpath", "/var/log/mongodb.log", "--bind_ip_all"]

这就是我在本地启动的方式:

docker run --name testing -d -v ~/docker:/share -p 27017:27017 -p 28017:28017 myrepo:mongodb-service

所以我只是将主机目录挂载到容器的目录中,该主机目录包含所有键。

0 个答案:

没有答案