使用Docker Hub中的Dockerfile运行ckan

试图从Dockerfile中安装ckan:

Docker Community Edition Version 17.06.2-ce-mac27(19124)频道:stable 428bd6ceae *

第一次尝试

这些步骤如下:

$ docker pull ckan/solr $ docker pull ckan/ckan $ docker pull ckan/postgresql 

下载完图片后:

 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ckan/solr latest 4acd7db7b1f7 3 days ago 517MB ckan/ckan latest 77dd30c92740 3 days ago 642MB ckan/postgresql latest 3c3ecd94ae7e 3 days ago 265MB 

对于我所做的每个Dockerfile:

对于solr

 $ docker build . (for SOLR) Step 7/9 ADD failed: stat /var/lib/docker/tmp/docker-builder234804113/solrconfig.xml: no such file or directory 

对于postgresql

 $ docker build . (for POSTGRESQL) Successfully built 8b296a6e3153 

对于ckan

 $ docker build . -t ckan && docker run -d -p 80:5000 --link db:db --link redis:redis --link solr:solr ckan Error in Step 7/26 : Get:1 http://security.debian.org/ jessie/updates/main perl-base amd64 5.20.2-3+deb8u9 [1226 kB] debconf: delaying package configuration, since apt-utils is not installed 

和失败:

 Step 12/26 : ADD ./requirements.txt $CKAN_HOME/src/ckan/requirements.txt ADD failed: stat /var/lib/docker/tmp/docker-builder814560705/requirements.txt: no such file or directory 

第二次尝试

删除图像

再次拉扯图像

 $ docker pull ckan/solr $ docker pull ckan/ckan $ docker pull ckan/postgresql 

并启动:

 $ docker build . -t ckan && docker run -d -p 80:5000 --link db:db --link redis:redis --link solr:solr ckan 

在Dockerfile中: https ://hub.docker.com/r/ckan/ckan/~/dockerfile/

和我在相同的步骤中得到相同的错误:

 Step 12/26 : ADD ./requirements.txt $CKAN_HOME/src/ckan/requirements.txt ADD failed: stat /var/lib/docker/tmp/docker-builder254648764/requirements.txt: no such file or directory 

但Docker Hub中的日志是正确的。

难道我做错了什么?????

Dockerfile

 FROM debian:jessie MAINTAINER Open Knowledge ENV CKAN_HOME /usr/lib/ckan/default ENV CKAN_CONFIG /etc/ckan/default ENV CKAN_STORAGE_PATH /var/lib/ckan ENV CKAN_SITE_URL http://localhost:5000 # Install required packages RUN apt-get -q -y update && apt-get -q -y upgrade && DEBIAN_FRONTEND=noninteractive apt-get -q -y install \ python-dev \ python-pip \ python-virtualenv \ libpq-dev \ git-core \ build-essential \ libssl-dev \ libffi-dev \ && apt-get -q clean # SetUp Virtual Environment CKAN RUN mkdir -p $CKAN_HOME $CKAN_CONFIG $CKAN_STORAGE_PATH RUN virtualenv $CKAN_HOME RUN ln -s $CKAN_HOME/bin/pip /usr/local/bin/ckan-pip RUN ln -s $CKAN_HOME/bin/paster /usr/local/bin/ckan-paster # SetUp Requirements ADD ./requirements.txt $CKAN_HOME/src/ckan/requirements.txt RUN ckan-pip install --upgrade -r $CKAN_HOME/src/ckan/requirements.txt # TMP-BUGFIX https://github.com/ckan/ckan/issues/3388 ADD ./dev-requirements.txt $CKAN_HOME/src/ckan/dev-requirements.txt RUN ckan-pip install --upgrade -r $CKAN_HOME/src/ckan/dev-requirements.txt # TMP-BUGFIX https://github.com/ckan/ckan/issues/3594 RUN ckan-pip install --upgrade urllib3 # SetUp CKAN ADD . $CKAN_HOME/src/ckan/ RUN ckan-pip install -e $CKAN_HOME/src/ckan/ RUN ln -s $CKAN_HOME/src/ckan/ckan/config/who.ini $CKAN_CONFIG/who.ini # SetUp EntryPoint COPY ./contrib/docker/ckan-entrypoint.sh / RUN chmod +x /ckan-entrypoint.sh ENTRYPOINT ["/ckan-entrypoint.sh"] # Volumes VOLUME ["/etc/ckan/default"] VOLUME ["/var/lib/ckan"] EXPOSE 5000 CMD ["ckan-paster","serve","/etc/ckan/default/ckan.ini"] 

更新1

如所build议的那样,添加ckan包的内容: http ://packaging.ckan.org/

复制到我的Dockerfile目录/ data / usr / lib / ckan / default / src / ckan / *

步骤15中的新错误(请参阅评论)

更新2

从https://github.com/ckan/ckan克隆ckan

 $ docker build . -t ckan && docker run -d -p 80:5000 --link db:db --link redis:redis --link solr:solr ckan 

结果:

 Step 26/26 : CMD ckan-paster serve /etc/ckan/default/ckan.ini ---> Running in eeeb6ace6ee1 ---> 3cd87cf4a1af Removing intermediate container eeeb6ace6ee1 Successfully built 3cd87cf4a1af Successfully tagged ckan:latest docker: Error response from daemon: could not get container for db: No such container: db. 

尝试访问ckan:

 docker run -it ckan bash 

我得到这个错误:

 Distribution already installed: ckan 2.8.0a0 from /usr/lib/ckan/default/src/ckan Creating /etc/ckan/default/ckan.ini Now you should edit the config files /etc/ckan/default/ckan.ini Traceback (most recent call last): File "/usr/local/bin/ckan-paster", line 11, in <module> sys.exit(run()) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 102, in run invoke(command, command_name, options, args[1:]) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 141, in invoke exit_code = runner.run(args) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 236, in run result = self.command() File "/usr/lib/ckan/default/src/ckan/ckan/lib/cli.py", line 348, in command self._load_config(cmd!='upgrade') File "/usr/lib/ckan/default/src/ckan/ckan/lib/cli.py", line 321, in _load_config self.site_user = load_config(self.options.config, load_site_user) File "/usr/lib/ckan/default/src/ckan/ckan/lib/cli.py", line 230, in load_config load_environment(conf.global_conf, conf.local_conf) File "/usr/lib/ckan/default/src/ckan/ckan/config/environment.py", line 111, in load_environment p.load_all() File "/usr/lib/ckan/default/src/ckan/ckan/plugins/core.py", line 129, in load_all unload_all() File "/usr/lib/ckan/default/src/ckan/ckan/plugins/core.py", line 182, in unload_all unload(*reversed(_PLUGINS)) File "/usr/lib/ckan/default/src/ckan/ckan/plugins/core.py", line 210, in unload plugins_update() File "/usr/lib/ckan/default/src/ckan/ckan/plugins/core.py", line 121, in plugins_update environment.update_config() File "/usr/lib/ckan/default/src/ckan/ckan/config/environment.py", line 289, in update_config engine = sqlalchemy.engine_from_config(config, client_encoding='utf8') File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/__init__.py", line 428, in engine_from_config return create_engine(url, **options) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/__init__.py", line 387, in create_engine return strategy.create(*args, **kwargs) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 50, in create u = url.make_url(name_or_url) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/url.py", line 194, in make_url return _parse_rfc1738_args(name_or_url) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/url.py", line 240, in _parse_rfc1738_args return URL(name, **components) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/url.py", line 60, in __init__ self.port = int(port) ValueError: invalid literal for int() with base 10: '' 

更新3 (亚光浮钟build议)

我已经在一个名为ckan的文件夹中克隆了https://github.com/parksandwildlife/ckan.git

我在另一个文件夹ckan-3649中克隆了https://github.com/parksandwildlife/ckan/tree/3649-docker-upgrade

在ckan文件夹中

 docker build . -t ckan && docker run -d -p 80:5000 --link db:db --link redis:redis --link solr:solr ckan 

在步骤15/26中:

  RUN ckan-pip install --upgrade -r $CKAN_HOME/src/ckan/dev-requirements.txt 

错误:

 Cleaning up... Command /usr/lib/ckan/default/bin/python2 -c "import setuptools, tokenize;__file__='/tmp/pip-build-BLM6DJ/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-Vynm83-record/install-record.txt --single-version-externally-managed --compile --install-headers /usr/lib/ckan/default/include/site/python2.7 failed with error code 1 in /tmp/pip-build-BLM6DJ/cryptography Storing debug log for failure in /root/.pip/pip.log The command '/bin/sh -c ckan-pip install --upgrade -r $CKAN_HOME/src/ckan/dev-requirements.txt' returned a non-zero code: 1 

在ckan-3649 / contrib / docker“docker-up up”

 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b6d7a5a595ca redis:latest "docker-entrypoint..." 9 minutes ago Up 9 minutes 6379/tcp redis 4551ccea28f4 ckan/solr:latest "docker-entrypoint..." 9 minutes ago Up 9 minutes 8983/tcp solr 86cea84b6ab5 docker_db "docker-entrypoint..." 9 minutes ago Up 9 minutes 5432/tcp db fca64f1bee5a clementmouchet/datapusher "python datapusher..." 9 minutes ago Up 9 minutes 0.0.0.0:8800->8800/tcp datapusher 

但我认为ckan图像丢失….

目前正在进行的CKANdockerfunction的重大升级。 我build议从这里克隆CKAN: https : //github.com/parksandwildlife/ckan

 git clone https://github.com/parksandwildlife/ckan.git 

然后检查origin / 3649-docker-upgrade分支( https://github.com/parksandwildlife/ckan/tree/3649-docker-upgrade

 git checkout origin/3649-docker-upgrade 

然后在contrib / docker文件夹中使用docker-compose:

 docker-compose up 

这应该为你组装Solr,Postgres等。

在这里https://github.com/ckan/ckan/pull/3692的里程评论也将不胜感激&#x3002;