将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