我如何 运行 CKAN docker 图片?
How do I run a CKAN docker image?
我已经尝试了好几天 运行 CKAN as a docker image. The official CKAN documentation 详细解释了如何通过“docker-compose”创建您自己的 docker 图像。基本工作流程是:
- 从 GitHub
克隆 CKAN 源文件
- 在“docker-compose.yml”文件中进行一些更改(自定义密码、扩展名等)
- 运行 "docker-撰写"
这为您提供了一个 运行ning CKAN docker 容器以及所有必要的数据库和搜索引擎。
然而,我的最终目标是将这个 CKAN docker 图像推送到 Docker-Hub 并通过“docker 运行”。我想使用这个方法是因为我想广泛修改原始的 CKAN 安装,并在将其推送到 docker 集线器之前将自定义数据集、组和组织添加到 运行ning 目录。与使用“Docker compose”相比,“Docker 运行”似乎更容易、更方便。
问题是:每当我尝试使用下面的命令 运行 CKAN 容器时,我都会遇到以下错误:
$ docker run -d --name db ckan/postgresql
$ docker run -d --name solr ckan/solr
$ docker run -d -p 80:80 --link db:db --link solr:solr ckan/ckan
ERROR: no CKAN_SQLALCHEMY_URL specified in docker-compose.yml
CKAN_SQLALCHEMY_URL 肯定存在于 docker-compose.yml 文件中。在 windows 中将此变量设置为全局 PATH 变量也无济于事。我还尝试了不同版本的 CKAN 源代码。自 Docker 集线器上的 CKAN documentation only explains how to use "docker-compose" and not how to use "docker run", I suspect that "docker run" is simply not possible. If this is true, why is there a official CKAN image? (这会引发完全相同的错误,就好像我自己使用“docker-compose”构建图像一样)如果无法使用,Docker Hub 上的此图像的目的是什么?
有没有办法在构建后“docker 运行”CKAN 图像?
谢谢!
编辑:下面是我的 CKAN docker-compose.yml 文件。 (变量存储在.env文件中)
# docker-compose build && docker-compose up -d
# If "docker-compose logs ckan" shows DB not ready, run "docker-compose restart ckan" a few times.
version: "3"
volumes:
ckan_config:
ckan_home:
ckan_storage:
pg_data:
services:
ckan:
container_name: ckan
build:
context: ../../
args:
- CKAN_SITE_URL=${CKAN_SITE_URL}
links:
- db
- solr
- redis
ports:
- "0.0.0.0:${CKAN_PORT}:5000"
environment:
# Defaults work with linked containers, change to use own Postgres, SolR, Redis or Datapusher
- CKAN_SQLALCHEMY_URL=postgresql://ckan:${POSTGRES_PASSWORD}@db/ckan
- CKAN_DATASTORE_WRITE_URL=postgresql://ckan:${POSTGRES_PASSWORD}@db/datastore
- CKAN_DATASTORE_READ_URL=postgresql://datastore_ro:${DATASTORE_READONLY_PASSWORD}@db/datastore
- CKAN_SOLR_URL=http://solr:8983/solr/ckan
- CKAN_REDIS_URL=redis://redis:6379/1
- CKAN_DATAPUSHER_URL=http://datapusher:8800
- CKAN_SITE_URL=${CKAN_SITE_URL}
- CKAN_MAX_UPLOAD_SIZE_MB=${CKAN_MAX_UPLOAD_SIZE_MB}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- DS_RO_PASS=${DATASTORE_READONLY_PASSWORD}
volumes:
- ckan_config:/etc/ckan
- ckan_home:/usr/lib/ckan
- ckan_storage:/var/lib/ckan
datapusher:
container_name: datapusher
image: clementmouchet/datapusher
ports:
- "8800:8800"
db:
container_name: db
build:
context: ../../
dockerfile: contrib/docker/postgresql/Dockerfile
args:
- DS_RO_PASS=${DATASTORE_READONLY_PASSWORD}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
environment:
- DS_RO_PASS=${DATASTORE_READONLY_PASSWORD}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- pg_data:/var/lib/postgresql/data
solr:
container_name: solr
build:
context: ../../
dockerfile: contrib/docker/solr/Dockerfile
redis:
container_name: redis
image: redis:latest
运行 它作为一个 docker 组合命令如果你想从 docker 运行 它你需要拆分 docker 文件并发送一些来自 .env 文件的参数,如错误说 SQL_ALCHEMY 没有被发送。
我建议将其执行为 docker 撰写。然后一旦你从 docker 构建,你就可以执行 docker 运行 并发送缺少的参数,如 SQL_ALCHEMY.
我已经尝试了好几天 运行 CKAN as a docker image. The official CKAN documentation 详细解释了如何通过“docker-compose”创建您自己的 docker 图像。基本工作流程是:
- 从 GitHub 克隆 CKAN 源文件
- 在“docker-compose.yml”文件中进行一些更改(自定义密码、扩展名等)
- 运行 "docker-撰写"
这为您提供了一个 运行ning CKAN docker 容器以及所有必要的数据库和搜索引擎。
然而,我的最终目标是将这个 CKAN docker 图像推送到 Docker-Hub 并通过“docker 运行”。我想使用这个方法是因为我想广泛修改原始的 CKAN 安装,并在将其推送到 docker 集线器之前将自定义数据集、组和组织添加到 运行ning 目录。与使用“Docker compose”相比,“Docker 运行”似乎更容易、更方便。
问题是:每当我尝试使用下面的命令 运行 CKAN 容器时,我都会遇到以下错误:
$ docker run -d --name db ckan/postgresql
$ docker run -d --name solr ckan/solr
$ docker run -d -p 80:80 --link db:db --link solr:solr ckan/ckan
ERROR: no CKAN_SQLALCHEMY_URL specified in docker-compose.yml
CKAN_SQLALCHEMY_URL 肯定存在于 docker-compose.yml 文件中。在 windows 中将此变量设置为全局 PATH 变量也无济于事。我还尝试了不同版本的 CKAN 源代码。自 Docker 集线器上的 CKAN documentation only explains how to use "docker-compose" and not how to use "docker run", I suspect that "docker run" is simply not possible. If this is true, why is there a official CKAN image? (这会引发完全相同的错误,就好像我自己使用“docker-compose”构建图像一样)如果无法使用,Docker Hub 上的此图像的目的是什么?
有没有办法在构建后“docker 运行”CKAN 图像?
谢谢!
编辑:下面是我的 CKAN docker-compose.yml 文件。 (变量存储在.env文件中)
# docker-compose build && docker-compose up -d
# If "docker-compose logs ckan" shows DB not ready, run "docker-compose restart ckan" a few times.
version: "3"
volumes:
ckan_config:
ckan_home:
ckan_storage:
pg_data:
services:
ckan:
container_name: ckan
build:
context: ../../
args:
- CKAN_SITE_URL=${CKAN_SITE_URL}
links:
- db
- solr
- redis
ports:
- "0.0.0.0:${CKAN_PORT}:5000"
environment:
# Defaults work with linked containers, change to use own Postgres, SolR, Redis or Datapusher
- CKAN_SQLALCHEMY_URL=postgresql://ckan:${POSTGRES_PASSWORD}@db/ckan
- CKAN_DATASTORE_WRITE_URL=postgresql://ckan:${POSTGRES_PASSWORD}@db/datastore
- CKAN_DATASTORE_READ_URL=postgresql://datastore_ro:${DATASTORE_READONLY_PASSWORD}@db/datastore
- CKAN_SOLR_URL=http://solr:8983/solr/ckan
- CKAN_REDIS_URL=redis://redis:6379/1
- CKAN_DATAPUSHER_URL=http://datapusher:8800
- CKAN_SITE_URL=${CKAN_SITE_URL}
- CKAN_MAX_UPLOAD_SIZE_MB=${CKAN_MAX_UPLOAD_SIZE_MB}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- DS_RO_PASS=${DATASTORE_READONLY_PASSWORD}
volumes:
- ckan_config:/etc/ckan
- ckan_home:/usr/lib/ckan
- ckan_storage:/var/lib/ckan
datapusher:
container_name: datapusher
image: clementmouchet/datapusher
ports:
- "8800:8800"
db:
container_name: db
build:
context: ../../
dockerfile: contrib/docker/postgresql/Dockerfile
args:
- DS_RO_PASS=${DATASTORE_READONLY_PASSWORD}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
environment:
- DS_RO_PASS=${DATASTORE_READONLY_PASSWORD}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- pg_data:/var/lib/postgresql/data
solr:
container_name: solr
build:
context: ../../
dockerfile: contrib/docker/solr/Dockerfile
redis:
container_name: redis
image: redis:latest
运行 它作为一个 docker 组合命令如果你想从 docker 运行 它你需要拆分 docker 文件并发送一些来自 .env 文件的参数,如错误说 SQL_ALCHEMY 没有被发送。
我建议将其执行为 docker 撰写。然后一旦你从 docker 构建,你就可以执行 docker 运行 并发送缺少的参数,如 SQL_ALCHEMY.