{"id":16970736,"url":"https://github.com/cs-tao/gtd-docker","last_synced_at":"2025-04-12T00:42:10.314Z","repository":{"id":92459715,"uuid":"138618694","full_name":"CS-Tao/GTD-Docker","owner":"CS-Tao","description":"全球恐怖袭击数据可视化系统 - Docker 部署方案","archived":false,"fork":false,"pushed_at":"2018-07-16T06:11:16.000Z","size":35,"stargazers_count":9,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-12T00:42:07.299Z","etag":null,"topics":["django","docker","docker-compose","dockerfile","nginx","postgis"],"latest_commit_sha":null,"homepage":"https://projects.cs-tao.cc/gtd-visualization/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CS-Tao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-25T16:06:02.000Z","updated_at":"2024-05-22T03:01:21.000Z","dependencies_parsed_at":"2023-06-02T12:45:30.751Z","dependency_job_id":null,"html_url":"https://github.com/CS-Tao/GTD-Docker","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-Tao%2FGTD-Docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-Tao%2FGTD-Docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-Tao%2FGTD-Docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-Tao%2FGTD-Docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CS-Tao","download_url":"https://codeload.github.com/CS-Tao/GTD-Docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248501958,"owners_count":21114681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","docker","docker-compose","dockerfile","nginx","postgis"],"created_at":"2024-10-14T00:45:47.784Z","updated_at":"2025-04-12T00:42:10.306Z","avatar_url":"https://github.com/CS-Tao.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/CS-Tao/GTD-Docker.svg?branch=master)](https://travis-ci.org/CS-Tao/GTD-Docker)\n[![Build status](https://ci.appveyor.com/api/projects/status/a2xnp089t7c4piy3/branch/master?svg=true)](https://ci.appveyor.com/project/CS-Tao/gtd-docker/branch/master)\n[![license](https://img.shields.io/badge/license-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![chat](https://img.shields.io/badge/chat-github%20issues-blue.svg)](https://github.com/CS-Tao/GTD-Docker/issues)\n\n# 全球恐怖袭击数据可视化系统 - Docker 部署方案\n\n\u003e Global Terrorist Attacks Visualization System - Deploy Solution by Docker-compose\n\n[![Overview](https://github.com/CS-Tao/github-content/raw/master/contents/github/GTD/1.webp)](https://projects.cs-tao.cc/gtd-visualization/)\n\n## 项目结构\n\n- 项目地址：[https://github.com/CS-Tao/GTD-Docker](https://github.com/CS-Tao/GTD-Docker)\n\n- 镜像仓库:\n  - [cstao/gtd-postgis](https://store.docker.com/community/images/cstao/gtd-postgis)\n  - [cstao/gtd-django](https://store.docker.com/community/images/cstao/gtd-django)\n  - [cstao/gtd-nginx](https://store.docker.com/community/images/cstao/gtd-nginx)\n\n### 服务堆栈\n\n- postgis\n\n  数据库容器，负责数据服务，数据导入在此模块中完成\n\n- django\n\n  后台服务容器，负责数据 API 的提供\n\n- nginx\n\n  反向代理服务器，负责静态文件的代理和 Django API 的反向代理\n\n### 容器间通信\n\n三个容器均处于 `network` 网络下，通信 IP 为容器的服务名\n\n- postgis\n\n  在 `network` 网络内部暴露 `5432` 端口，供 `django` 容器连接\n\n- django\n\n  连接 `postgis` 容器的 `5432` 端口，并使用 `uwsgi` 开启 socket 通信，对生成的 `gtd-background.sock` 文件实现持久化，供 `nginx` 访问\n\n- nginx\n\n  通过 `gtd-background.sock` 文件和 `django` 容器通信\n\n### 数据卷\n\n- postgresql-data\n\n  储存 `postgis` 容器的数据\n\n- uwsgi-sock\n\n  储存 `gtd-background.sock` 文件，提供 `django` 容器和 `nginx` 容器的通信\n\n- static-files\n\n  负责静态文件的持久化。静态文件由 `django` 容器和 `nginx` 容器产生，由 `nginx` 容器负责代理\n\n- logs\n\n  存放日志文件。`postgresql` 文件夹存放 `postgis` 容器的数据库日志，`django-uwsgi` 文件夹存放 `django` 容器的访问日志，`nginx` 文件夹存放 `nginx` 容器的代理日志\n\n## 环境变量\n\n所有的环境变量在 `.env` 文件中定义，一共 7 个\n\n- ENV_DOCKER_USER\n\n  镜像用户，默认为 `cstao`\n\n- ENV_NGINX_PORT\n\n  `nginx` 容器对外暴露的数据 API 和静态文件的访问端口，默认为 `2001`\n\n- ENV_POSTGIS_PORT\n\n  `postgis` 容器对外暴露的数据库连接端口，默认为 `2032`\n\n- ENV_POSTGRES_DB\n\n  存放数据的数据库，默认为 `gtdb`\n\n- ENV_POSTGRES_USER\n\n  访问 `ENV_POSTGRES_DB` 的用户，默认为 `cstao`\n\n- ENV_POSTGRES_PASSWD\n\n  `ENV_POSTGRES_USER` 用户的密码，默认为 `cstao`\n\n- ENV_POSTGRES_PASSWD_ADMIN\n\n  `postgres` 用户的密码，默认为 `0000`\n\n## 编排命令\n\n- 构建镜像\n\n  本地构建：\n  ```bash\n  docker-compose build\n  ```\n  或者从 [store.docker.com](https://store.docker.com/profiles/cstao) 拉取：\n  ```bash\n  docker-compose pull\n  ```\n\n- 创建并启动服务\n\n  同步：\n  ```bash\n  docker-compose up\n  ```\n  异步：\n  ```bash\n  docker-compose up -d\n  ```\n\n- 导入数据到 postgresql 数据库\n\n  利用 `docker ps` 命令得到 `postgis` 容器的 `ID`，然后在 `postgis` 容器中执行导入数据的命令(`pg_dumped_data-url` 应该替换为自定义的 sql 数据的 URL，如果不指定该参数，则默认使用 `https://github.com/CS-Tao/GTD-Docker/releases/download/v1.0.0/gtdb.sql` 作为源数据)：\n  ```bash\n  docker exec -i \u003cpostgis-container-id\u003e import_data [pg_dumped_data-url]\n  ```\n\n- 启动/停止/重启服务\n\n  启动：\n  ```bash\n  docker-compose start\n  ```\n  停止：\n  ```bash\n  docker-compose stop\n  ```\n  重启：\n  ```bash\n  docker-compose restart\n  ```\n\n- 暂停/恢复服务\n\n  暂停：\n  ```bash\n  docker-compose pause\n  ```\n  恢复：\n  ```bash\n  docker-compose unpause\n  ```\n\n- 停止并移除由 `docker-compose.yml` 定义的服务容器和网络\n  \n  - 添加 `--rmi type` 参数可以移除镜像，`tpye` 可以为 `all` 或 `local`，`all` 表示移除所有镜像，`local` 表示只移除没有定义标签的镜像\n  - 添加 `-v` 或 `--volume` 参数可以移除所有在 `docker-compose.yml` 中定义的数据卷\n\n\n  ```bash\n  docker-compose down [--rmi \u003call\u003e|\u003clocal\u003e] [-v|--volume]\n  ```\n\n## Maintainer\n\n  | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/22360632?s=400\u0026u=1e8c0b49ed6ee28a1911f69d29176fd918c54897\u0026v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCS-Tao\u003c/b\u003e\u003c/sub\u003e](https://github.com/CS-Tao) | \n  | :---: |","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcs-tao%2Fgtd-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcs-tao%2Fgtd-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcs-tao%2Fgtd-docker/lists"}