小编Mel*_*ssa的帖子

Flyway有没有C#API?

Flyway有没有C#API?

我想在一个.Net应用程序中包含Flyway,而不是强迫没有Java开发人员安装Flyway或Maven或Java.而是让他们使用他们熟悉的工具,例如Nuget.

flyway

9
推荐指数
2
解决办法
4890
查看次数

使用org.testcontainers时如何在Docker容器中包含postgresql.conf

是否可以通过配置为postgresql testcontainer提供自定义的postgresql.conf文件?

我已经包括了Maven依赖

<dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>postgresql</artifactId>
            <version>1.10.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

并使用“通过JDBC URL方案启动的数据库容器”作为数据库URL,因此在Spring Boot应用程序中的设置如下:

datasource:
    url: jdbc:tc:postgresql:10-alpine:///databasename
    driver-class-name: org.testcontainers.jdbc.ContainerDatabaseDriver
Run Code Online (Sandbox Code Playgroud)

我需要在postgresql.conf中有一个自定义设置。有没有一种方法可以将postgresql.conf推送到由testcontainers启动的docker容器中?

编辑1

感谢@vilkg我确实知道TC_INITSCRIPT脚本选项和SET函数:

  • 我想要一个自定义设置,例如my.key
  • ALTER系统不适用于您自己的设置,例如:ALTER SYSTEM SET my.key ='jehe'; 出现错误无法执行SQL命令。返回消息:错误:无法识别的配置参数“ my.key”
  • 我以前尝试过SET和ALTER DATABASE,如下所示
SET my.key = 'new  value 8';    -- sets for current session 
ALTER DATABASE test SET my.key = 'new  value 8';  -- sets for subsequent sessions
select current_setting('my.key');
Run Code Online (Sandbox Code Playgroud)

问题是

  • 当testcontainer启动postgres容器时,我将其传递给init脚本来运行 url: jdbc:tc:postgresql:10-alpine:///databasename?TC_INITSCRIPT=init_pg.sql
    • 并且我可以将上面的SQL包括在内。.
    • 我知道该secret.key的设置在此脚本中正常工作,因为在选择select_current_setting('my.key')的行上它将失败。如果另外两个被注释掉
    • 我也知道针对数据库名称测试运行它是正确的,例如:'ALTER DATABASE test',因为如果我使用其他名称,它将失败,Testcontainers会自动将应用程序连接到名为test的数据库。因此,我相信以上所有内容都可以很好地设置数据库一切都应该很好

但是, 当我在应用程序代码中使用“ current_setting('my.key')”时,它将失败

postgresql maven spring-boot testcontainers

8
推荐指数
1
解决办法
479
查看次数

Keycloak访问令牌与UserInfo令牌?

使用Keycloak时,访问令牌与用户信息令牌有何不同?

从OAuth2 / OpenIDConnect中,我了解到访问令牌会提供用户已通过身份验证的信息,并且您需要使用用户信息令牌来获取有关用户及其配置文件/角色等的更多信息。

当我以https://jwt.io/或UserInfo令牌之类的方式查看访问令牌时。我能够获得有关用户个人资料和角色的相同信息。

为什么会这样?使用Keycloak时访问令牌与用户信息令牌有何不同?

oauth oauth-2.0 openid-connect keycloak

7
推荐指数
2
解决办法
5081
查看次数

Docker容器的IP-Virtualbox + Windows

在Windows机器上,要为Virtual Box上的VM中运行的Docker容器的IP使用什么IP地址?

我有:

  • Windows 10机器
  • 随Ubuntu VM一起安装的Virtualbox
  • 已经安装了Docker
  • 和运行端口80/443的容器

在VM上,我可以运行docker命令并查看容器正在运行

vagrant@ubuntu-xenial:~$ docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS                                      NAMES
e7a41b3edecd        nrel/api-umbrella   "api-umbrella run"   17 minutes ago      Up 17 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   api-umbrella
vagrant@ubuntu-xenial:~$
Run Code Online (Sandbox Code Playgroud)

该容器的IP为:

vagrant@ubuntu-xenial:~$ docker inspect e7a41b3edecd | grep "IPAddress"
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",
vagrant@ubuntu-xenial:~$
Run Code Online (Sandbox Code Playgroud)

我可以ping IP 172.17.0.2,并在VM本身上卷曲http://172.17.0.2。但是在Windows计算机上尝试http://172.17.0.2时,我没有响应。

问题 -我从Windows机器使用什么IP来获取VM上运行的Docker容器?

virtualbox vagrant docker

6
推荐指数
1
解决办法
1429
查看次数

与内部图书馆的持续集成

我们有一个名为coresystem的项目,该项目使用许多内部依赖的库,所有库的版本都不同。

设置coresystem的构建配置以引用具有特定版本号的库,例如coresytem 2.3.4使用库abc-version-1.2.3和def-version-3.4.5。

这些库通常在与核心系统同时更改。每个核心系统版本不一定会更改同一组库。

在这种情况下,我们如何处理连续交付。当前,我们经常需要更改核心系统的构建配置。

shared-libraries dependency-management libraries continuous-deployment continuous-delivery

5
推荐指数
1
解决办法
179
查看次数