将Pleasanter运行在Docker上

我想立即在Docker容器上构建并运行Pleasanter(プリザンター)。这样你就可以方便地随时尝试最新的Pleasanter了。

这次我们将尝试使用官方仓库中的Docker Compose文件。

    Implem.Pleasanter.NetCore/docker-compose.yml at master

阅读Compose的定义

version: '3.5'

services:
  Implem.Pleasanter:
    build:
      context: .
      dockerfile: ./Implem.Pleasanter/Dockerfile
    environment:
        - Implem.Pleasanter_Rds_PostgreSQL_SaConnectionString=${Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString}
        - Implem.Pleasanter_Rds_PostgreSQL_OwnerConnectionString=${Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString}
        - Implem.Pleasanter_Rds_PostgreSQL_UserConnectionString=${Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString}
    image: implem.pleasanter
    container_name: pleasanter
    depends_on:
      - db
    networks:
      - default

尽管没有特别变化的地方,但环境变量的记录看起来有点冗长。
这是为了避免变量定义因参考Pleasanter所需的环境变量名包含 ‘.'(点)而在执行环境中出现错误所做的努力。
我们将在执行环境中定义以替换为 ‘_'(下划线)的变量名,并在传递给容器时使用原始变量名来参考该变量。

CodeDefiner的容器也是一样的。

数据库的情况如何?

version: '3.5'

services:
  db:
    container_name: postgresql
    build:
      context: .
      dockerfile: ./docker-build/postgresql/Dockerfile
    environment:
      - POSTGRES_USER
      - POSTGRES_PASSWORD
      - POSTGRES_DB
    ports:
      - "5432:5432"
    volumes:
      - ./docker-build/postgresql/init:/docker-entrypoint-initdb.d
    networks:
      - default

数据库现在使用的是PostgreSQL。

用户和数据库的指定是通过环境变量传递的。services/db/environment是其定义,因此可以根据需要进行配置。
在环境变量中定义的内容也会被应用于Pleasanter所使用的数据库连接字符串。

在容器定义中使用官方镜像。拥有初始化功能,可以使用这个功能将全文搜索模块一并安装。

    公式のイメージ: Postgres – Official Image | Docker Hub

我們使用 volumes 初始化處理並將其附加到指定的位置。
這樣一來,它會執行任意的初始化處理。
關於初始化功能,我們對這些條目很容易理解。

    • dockerでPostgreSQLのコンテナ作成と初期化 – Qiita

 

    Docker で作る postgres 環境 | Crudzoo

搭建

我們將設定必要的環境變數並進行編譯。

export POSTGRES_USER=postgres
export POSTGRES_PASSWORD=<任意のSaパスワード>
export POSTGRES_DB=postgres

export Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString='Server=db;Database=postgres;UID=postgres;PWD=<任意のSaパスワード>'
export Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString='Server=db;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=<任意のOwnerパスワード>'
export Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString='Server=db;Database=#ServiceName#;UID=#ServiceName#_User;PWD=<任意のUserパスワード>'

以下是关于SaConnectionString的注意事项。

Server: Composeファイルのservicesで定義した名前にします(db)

Database: 環境変数のPOSTGRES_DBと同じにします

UID: 環境変数のPOSTGRES_USERと同じにします

PWD: 環境変数のPOSTGRES_PASSWORDと同じにします

让我们来进行构建吧。

docker-compose build

在Windows操作系统中,请指定以下两个环境变量。

    将DOCKER_BUILDKIT设置为1,并将COMPOSE_DOCKER_CLI_BUILD设置为true。

CodeDefiner的执行和Pleasanter的启动

第一次的情况下,执行CodeDefiner。

docker-compose run --rm --name codedefiner Implem.CodeDefiner _rds

打开Pleasanter。

docker-compose run --rm -d -p 50001:80 --name pleasanter Implem.Pleasanter

-p的50001将成为浏览器等访问时的URL端口(根据需要进行适当更改)
我们尝试访问 http://localhost:50001/。
您觉得如何,是否显示出了熟悉的界面?

到最后我会结束。

docker-compose down
广告
将在 10 秒后关闭
bannerAds