fiware/wirecloudDockerfile 链接1.3, 1.3.1, FIWARE_7.7.11.2, latestdev和语义技术,提供下一代以端用户为中心的 Web 应用混搭平台,旨在利用服务互联网的长尾效应。它允许没有编程技能的端用户轻松创建 Web 应用和仪表板/驾驶舱(例如,可视化其感兴趣的数据或控制其智能家居或环境)。Web 应用混搭集成来自 Web 的异构数据、应用逻辑和 UI 组件(小部件),以创建新的连贯且增值的复合应用。它们旨在通过利用快速开发、DIY 和可共享性来利用“服务网络”(又名可编程 Web)的“长尾”。它们通常满足特定的情境需求(即即时、短期、定制化),通常具有很高的复用潜力。正是这种“情境”特性使得它们无法作为解决方案提供商的“现成”功能提供,因此产生了对 WireCloud 这类工具的需求。
WireCloud 是 FIWARE 的一部分。可在 目录 中查看。
-e LOGLEVEL=...(默认为 "INFO")-e ALLOWED_HOSTS=...(默认为 "*",空格分隔的允许主机列表。详见 Django 文档)-e DEFAULT_LANGUAGE=...(默认为 "browser",详见 文档)-e DEFAULT_THEME=...(默认为 "wirecloud.defaulttheme")-e DB_HOST=...(默认为空,提供主机值以将此镜像与数据库服务器连接)-e DB_NAME=...(默认为 "postgres")-e DB_USERNAME=...(默认为 "postgres")-e DB_PASSWORD=...(默认为 "postgres")-e DB_PORT=...(默认为 "5432")-e FORWARDED_ALLOW_IPS=...(默认为 "*",设置可信反向代理列表)-e ELASTICSEARCH2_URL=...(默认为空,留空则使用 Whoosh)-e LANGUAGE_CODE=...(默认为 "en-gb",详见 Django 文档)-e MEMCACHED_LOCATION=...(默认为空,留空则禁用 memcached 支持)-e FIWARE_IDM_SERVER=...(默认为空,留空则使用 WireCloud 数据库中存储的凭据对用户进行身份验证)-e FIWARE_IDM_PUBLIC_URL=...(默认为空,留空则使用 FIWARE_IDM_SERVER 配置构建重定向浏览器到 IdM 门户的 URL)-e SOCIAL_AUTH_FIWARE_KEY=...(默认为空)-e SOCIAL_AUTH_FIWARE_SECRET=...(默认为空)-e KEYCLOAK_IDM_SERVER=...(默认为空,留空则使用 WireCloud 数据库中存储的凭据对用户进行身份验证)-e KEYCLOAK_REALM=...(默认为空,用于连接 Keycloak 的领域)-e KEYCLOAK_KEY=...(默认为空)-e KEYCLOAK_GLOBAL_ROLE=...(默认为 "False")-e SOCIAL_AUTH_KEYCLOAK_KEY=...(默认为空)-e SOCIAL_AUTH_KEYCLOAK_SECRET=...(默认为空)-e HTTPS_VERIFY=...(True、False 或证书 bundle 路径,默认为 "/etc/ssl/certs/ca-certificates.crt")-e ADMIN_URL_PATH=...(默认为 "^admin/",管理路径的正则表达式)除上述环境变量外,此 Docker 镜像还允许使用同名环境变量配置以下 Django 设置:CACHE_MIDDLEWARE_KEY_PREFIX、CSRF_COOKIE_AGE、CSRF_COOKIE_HTTPONLY、CSRF_COOKIE_NAME、CSRF_COOKIE_SECURE、DEFAULT_FROM_EMAIL、EMAIL_HOST、EMAIL_HOST_PASSWORD、EMAIL_PORT、EMAIL_HOST_USER、EMAIL_USE_SSL、EMAIL_USE_TLS、FORCE_SCRIPT_NAME、LOGOUT_REDIRECT_URL、SECRET_KEY、SESSION_COOKIE_AGE、SESSION_COOKIE_NAME、SESSION_COOKIE_HTTPONLY 和 SESSION_COOKIE_SECURE。详见 Django 文档。
当在负责 TLS 终止的反向代理(如 Apache/NGINX)后使用 TLS 运行 WireCloud 时,确保适当设置 X-Forwarded-Proto、X-Forwarded-Host 和 X-Forwarded-Port 头。
作为通过环境变量传递敏感信息的替代方案,可在某些敏感环境变量后附加 _FILE,使初始化脚本从容器中存在的文件加载这些变量的值。特别是,这可用于从存储在 /run/secrets/<secret_name> 文件中的 Docker Secrets 加载密码。例如:
consoledocker run --name wirecloud -e DB_PASSWORD_FILE=/run/secrets/password -d fiware/wirecloud
目前,以下变量支持 _FILE 后缀:
EMAIL_HOST_PASSWORDKEYCLOAK_KEYLOGOUT_REDIRECT_URLSECRET_KEYSOCIAL_AUTH_FIWARE_KEYSOCIAL_AUTH_FIWARE_SECRETSOCIAL_AUTH_KEYCLOAK_KEYSOCIAL_AUTH_KEYCLOAK_SECRET可使用 docker exec -ti some-wirecloud manage.py ... 运行任何可用的 manage.py 命令。例如,可通过以下命令创建超级用户/管理员:
bash$ docker exec -ti some-wirecloud manage.py createsuperuser Username (leave blank to use 'root'): admin Email address: ${youremail} Password: ${yourpassword} Password (again): ${yourpassword} Superuser created successfully.
对于使用文件系统的命令,需注意这些命令将在容器内执行,因此文件系统是容器使用的文件系统。manage.py 脚本不会检查这些命令是否对提供的卷之外进行更改。不过,它们可以正常使用。例如,可使用以下命令收集静态文件:
bash$ docker exec -ti some-wirecloud manage.py collectstatic
使用 docker exec -ti some-wirecloud manage.py --help 获取可用命令列表。
docker stack deploy 或 docker-compose 部署WireCloud 的 docker-compose.yml 示例:
yamlversion: "3" services: nginx: restart: always image: nginx ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro - ./wirecloud-static:/var/www/static:ro depends_on: - wirecloud postgres: restart: always image: postgres environment: - POSTGRES_PASSWORD=wirepass # 更改此密码! volumes: - ./postgres-data:/var/lib/postgresql/data elasticsearch: restart: always image: elasticsearch:2.4 volumes: - ./elasticsearch-data:/usr/share/elasticsearch/data command: elasticsearch -Des.index.max_result_window=50000 memcached: restart: always image: memcached:1 command: memcached -m 2048m wirecloud: restart: always image: fiware/wirecloud depends_on: - postgres - elasticsearch - memcached environment: - DEBUG=False # - DEFAULT_THEME=wirecloud.defaulttheme - DB_HOST=postgres - DB_PASSWORD=wirepass # 更改此密码! - FORWARDED_ALLOW_IPS=* - ELASTICSEARCH2_URL=[***] - MEMCACHED_LOCATION=memcached:*** # 取消以下环境变量的注释以启用 IDM 集成 #- FIWARE_IDM_SERVER=${FIWARE_IDM_SERVER} #- SOCIAL_AUTH_FIWARE_KEY=${SOCIAL_AUTH_FIWARE_KEY} #- SOCIAL_AUTH_FIWARE_SECRET=${SOCIAL_AUTH_FIWARE_SECRET} volumes: - ./wirecloud-data:/opt/wirecloud_instance/data - ./wirecloud-static:/var/www/static
此 docker-compose.yml 文件依赖于 nginx.conf 配置文件:
nginxuser nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; server { listen 80; server_name example.org; client_max_body_size 20M; charset utf-8; location /static { alias /var/www/static; } location / { proxy_pass [***] proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }
运行 docker stack deploy -c docker-compose.yml wirecloud(或 docker-compose -f docker-compose.yml up),等待完全初始化后,访问 [***]、http://localhost 或 [***](视情况而定)。此外,请注意,要部署生产就绪的 WireCloud,应配置 https(本示例未涵盖)。
如需自定义 WireCloud 安装,最佳选择是通过扩展官方镜像之一创建新的 Docker 镜像并安装新模块。例如,可按照 教程 创建自定义主题,并将其安装在扩展镜像上,然后使用 DEFAULT_THEME 环境变量将其配置为默认主题。
查看 WireCloud 的许可证信息。
此镜像官方支持 Docker 1.7.0 版本。
对旧版本(低至 1.0)的支持基于尽力而为原则。
本文档应提供使用 Docker 安装 WireCloud 所需的一切信息。此外,可在 Read the Docs 上找到用户与程序员手册以及管理指南。
如对此镜像有任何问题或疑问,请通过 GitHub issue 联系我们。
也可通过 StackOverflow 上的 fiware 和 fiware-wirecloud 标签联系许多官方镜像维护者:StackOverflow。
欢迎贡献新功能、修复或更新,无论大小;我们始终乐于接收拉取请求,并尽力快速处理。
在开始编码前,建议通过 GitHub issue 讨论您的计划,尤其是对于更宏大的贡献。这使其他贡献者有机会为您指明正确方向、提供设计反馈,并帮助您了解是否有其他人正在从事相同工作。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务