Docker: 软件应用工具

    您可以使用Docker,快速部署启动软件应用,在容器中,您可以直接使用连接串访问部署于宿主机上的PostgreSQL/Redis数据库。

    • PgAdmin4 : 一个用于管理PostgreSQL数据库实例的GUI工具
    • :一个自动根据PG数据库模式生成后端API服务的工具
    • PostgREST:一个自动根据PG数据库模式生成后端API服务的工具
    • : 一个用于进行PostgreSQL模式变更的GUI工具
    • Jupyter Lab:一个开箱即用的数据分析与处理Python实验环境

    您也可以用Docker拉起一些开箱即用的开源软件服务:

    • :轻量化代码托管服务
    • Minio:S3兼容的简单对象存储服务
    • :功能完善的私人维基站点
    • Casdoor:单点SSO解决方案

    您也可以使用Docker执行一些随用随抛的命令工具,例如:

    • SchemaSPY:生成数据库模式的详细可视化报表
    • :生成数据库日志报表

    您也可以用Docker拉起一些开箱即用的开源软件服务:

    • Gitlab:开源代码托管平台。
    • :开源镜像仓库
    • Jira:开源项目管理平台。
    • :开源ERP
    • Mastodon:基于PG的社交网络
    • :基于PG与Redis的开源论坛

    PgAdmin4 是一个实用的PostgreSQL管理工具,执行以下命令可在管理节点拉起 pgadmin服务:

    默认分配 8885 端口,使用域名: 访问, Demo:http://adm.pigsty.cc。

    默认用户名:,密码:pigsty

    PGWeb客户端工具

    PGWeb是一款基于浏览器的PG客户端工具,使用以下命令,在元节点上拉起PGWEB服务,默认为主机8886端口。可使用域名: 访问,公开Demo:http://cli.pigsty.cc。

    1. # docker stop pgweb; docker rm pgweb
    2. docker run --init --name pgweb --restart always --detach --publish 8886:8081 sosedoff/pgweb

    用户需要自行填写数据库连接串,例如默认CMDB的连接串:

    postgres://dbuser_dba:DBUser.DBA@10.10.10.10:5432/meta?sslmode=disable

    1. mkdir -p /data/bytebase/data;
    2. docker run --init --name bytebase --restart always --detach --publish 8887:8887 --volume /data/bytebase/data:/var/opt/bytebase \
    3. bytebase/bytebase:1.0.4 --data /var/opt/bytebase --host http://ddl.pigsty --port 8887

    访问 http://10.10.10.10:8887/ 或 即可使用 ByteBase,您需要依次创建项目、环境、实例、数据库,即可开始进行模式变更。 公开Demo地址: http://ddl.pigsty.cc

    PostgREST

    PostgREST是一个自动根据 PostgreSQL 数据库模式生成 REST API的二进制组件。

    例如,以下命令将使用docker拉起 postgrest (本地 8884 端口,使用默认管理员用户,暴露Pigsty CMDB模式)

    访问 会展示所有自动生成API的定义,并自动使用 Swagger Editor 暴露API文档。

    如果您想要进行增删改查,设计更精细的权限控制,请参考 ,生成一个签名JWT。

    是一站式数据分析环境,下列命令将在 8887 端口启动一个Jupyter Server.

    1. docker run -it --restart always --detach --name jupyter -p 8888:8888 -v "${PWD}":/tmp/notebook jupyter/scipy-notebook
    2. docker logs jupyter # 打印日志,获取登陆的Token

    访问 http://10.10.10.10:8888/ 即可使用 JupyterLab,(需要填入自动生成的Token)。

    您也可以使用 在管理节点裸机上启用Jupyter Notebook。

    样例:数据库模式报表SchemaSPY

    使用以下docker生成数据库模式报表,以CMDB为例:

    1. docker run -v /www/schema/pg-meta/meta/pigsty:/output andrewjones/schemaspy-postgres:latest -host 10.10.10.10 -port 5432 -u dbuser_dba -p DBUser.DBA -db meta -s pigsty

    然后访问 即可访问Schema报表

    样例:开源技术论坛:Discourse

    搭建开源论坛Discourse,需要调整配置 app.yml ,重点是SMTP部分的配置

    Discourse配置样例

    1. templates:
    2. - "templates/web.china.template.yml"
    3. - "templates/postgres.template.yml"
    4. - "templates/redis.template.yml"
    5. - "templates/web.template.yml"
    6. - "templates/web.ratelimited.template.yml"
    7. ## Uncomment these two lines if you wish to add Lets Encrypt (https)
    8. # - "templates/web.letsencrypt.ssl.template.yml"
    9. expose:
    10. - "80:80" # http
    11. - "443:443" # https
    12. params:
    13. db_default_text_search_config: "pg_catalog.english"
    14. db_shared_buffers: "768MB"
    15. env:
    16. LC_ALL: en_US.UTF-8
    17. LANG: en_US.UTF-8
    18. LANGUAGE: en_US.UTF-8
    19. UNICORN_WORKERS: 4
    20. DISCOURSE_HOSTNAME: forum.pigsty
    21. DISCOURSE_DEVELOPER_EMAILS: 'fengruohang@outlook.com,rh@vonng.com'
    22. DISCOURSE_SMTP_ENABLE_START_TLS: false
    23. DISCOURSE_SMTP_AUTHENTICATION: login
    24. DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
    25. DISCOURSE_SMTP_ADDRESS: smtpdm.server.address
    26. DISCOURSE_SMTP_PORT: 80
    27. DISCOURSE_SMTP_PASSWORD: "<password>"
    28. DISCOURSE_SMTP_DOMAIN: mail.pigsty.cc
    29. volumes:
    30. - volume:
    31. host: /var/discourse/shared/standalone
    32. guest: /shared
    33. - volume:
    34. host: /var/discourse/shared/standalone/log/var-log
    35. guest: /var/log
    36. hooks:
    37. after_code:
    38. - exec:
    39. cd: $home/plugins
    40. cmd:
    41. - git clone https://github.com/discourse/docker_manager.git
    42. run:
    43. - exec: echo "Beginning of custom commands"
    44. # - exec: rails r "SiteSetting.notification_email='no_reply@mail.pigsty.cc'"
    45. - exec: echo "End of custom commands"

    然后,执行以下命令,拉起Discourse即可。


    使用Docker拉起PgAdmin4,并加载Pigsty服务器列表

    使用Docker拉起Gitea,并使用Pigsty的PG作为外部的元数据库

    使用Docker拉起Wiki,并使用Pigsty的PG作为持久数据存储

    使用Docker拉起Minio,即刻拥有你自己的对象存储服务。

    使用Docker拉起Bytebase,对PG的模式进行版本化管理

    使用Docker拉起PGWEB,以便从浏览器进行小批量在线数据查询

    使用Docker拉起PostgREST,自动根据PostgreSQL模式生成后端REST API