如果你仍然选择使用本地呆板直接安装PostgreSQL服务的方式,请跳过接下来的Docker部分,直接进入数据库和数据表的创建部分。在Docker中运行PostgreSQL数据库
注意:这里我使用daxnet/stickers-pgsql作为镜像名称,因为后面我需要将这个镜像发布到Docker Hub中,以是镜像名称中带有我在Docker Hub中的Registry名称。请可以根据自己的环境来决定镜像名称。我们还可以使用Docker Compose来构建镜像。在docker文件夹下,新建一个名为docker-compose.dev.yaml的文件,其内容为:
注意:在选择Base Image(也就是这里的postgres镜像)时,通常我们会指定一个特定的tag,而不是使用latest tag,这是为了防止在持续集成的时间由于使用了一个更新版本的镜像而导致一些版本兼容性问题。
请注意这里的Docker Compose文件名(docker-compose.dev.yaml)中有“dev”字样,这是因为,我打算在这个Docker Compose文件中仅包含支持开发环境的基础设施相关的容器,比如数据库、Keycloak、日志存储、缓存、Elasticsearch等等,而今后我们的案例应用步伐自己的docker容器并不会包含在这个Compose文件中,这样做的利益是,只需要一条Docker Compose命令就将运行和调试我们的案例步伐的所有基础设施服务全部启动起来,然后只需要在IDE中调试我们的步伐即可。准备好上面的docker-compose.dev.yaml文件之后,即可使用下面两条命令来编译和运行PostgreSQL数据库服务了:
将PostgreSqlDataAccessor置于一个单独的类库中,其原因在前一篇文章中我也介绍过,因为PostgreSqlDataAccessor有外部依赖,我们不应该将这种依赖“污染”到核心库(Stickers.Common)中,这样的隔离还可以带来另一个利益,那就是不同的Simplified Data Accessor(SDAC)可以被打包成不同的组件库,这样,不仅可以提高系统的可测试性,而且在实现应用步伐时,可以选择不同的组件接入,提供系统的稳固性和机动性。从上图还可以看出,接下来StickersController将会被注入PostgreSqlDataAccessor的实例,今后处开始,InMemoryDataAccessor将退出历史舞台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |