小编Yve*_*las的帖子

ps命令在docker容器中不起作用

我想在Debian官方Docker hub存储库派生的docker容器中执行ps命令:

$ docker run -ti debian:wheezy /bin/bash
root@51afd6b09af8:/# ps
bash: ps: command not found
Run Code Online (Sandbox Code Playgroud)

debian docker

154
推荐指数
6
解决办法
6万
查看次数

spring中的<util:properties>等效于基于java的配置

基于XML的弹簧配置基于java配置的等价物

<util:properties id="mapper"  location="classpath:mapper.properties" />
Run Code Online (Sandbox Code Playgroud)

然后,能够在代码中使用此特定属性对象:

@Resource(name = "mapper")
private Properties myTranslator;
Run Code Online (Sandbox Code Playgroud)

看着文档,我看了看

@PropertySource
Run Code Online (Sandbox Code Playgroud)

注释,但在我看来,无法从Environment对象单独访问特定的属性文件.

java spring

25
推荐指数
1
解决办法
2万
查看次数

如何查看来自docker镜像的提交消息

我是码头工人的新手并开始玩它.我创建了一些图片,提交了一些更改.开始于

sudo docker run -i -t ubuntu /bin/bash
Run Code Online (Sandbox Code Playgroud)

做了几次安装,退出并做了

sudo docker commit -m="my first message" innocent_dockernovice sandbox/yves:s1
Run Code Online (Sandbox Code Playgroud)

并重复这个过程

sudo docker run -i -t sandbox/yves:sN /bin/bash
Run Code Online (Sandbox Code Playgroud)

做贝壳,退出和

sudo docker commit -m="what I did in step N" happy_dockeruser sandbox/yves:sN+1
Run Code Online (Sandbox Code Playgroud)

现在我想回到上一步图像,并希望列出所有sudo docker image -m执行类似于一个命令的消息git log.最好的方法是什么?

docker

19
推荐指数
3
解决办法
1万
查看次数

<c:if test =>始终为true

我坚持使用以下代码.在JSP页面上,我想根据接受浏览器的终端编写不同的东西.终端值在控制器中正确设置,但在执行以下代码时,所有3 c:如果条件被认为有效并且显示三个句子

<c:if test="${terminal=='android'}">
    <p>you are on android</p>
</c:if>
<c:if test="${terminal=='iphone'}">
    <p>you are on iphone </p>
</c:if>
<c:if test="${terminal=='other'}">
    <p>you are on an other terminal </p>
</c:if>
Run Code Online (Sandbox Code Playgroud)

要检查条件是否正常,我添加了以下代码,当从Android访问时,它给出正确的true,false,false.

<p> ${terminal=='android'}</p>
<p>${terminal=='iphone'}</p>
<p>${terminal=='other'}</p>
Run Code Online (Sandbox Code Playgroud)

提前致谢

jsp el

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

docker 网桥模式下的 Keycloak 授权:如何访问 localhost?

应用程序上下文是一个带有 mongo db 的 node js 应用程序,使用 keycloak 服务器进行具有开放 ID 的授权。对于开发环境,我们有一个 mongo 容器、一个 keycloak 容器和应用服务器容器。

Keycloak 容器在 8080 上有一个端口映射,以便我可以访问http://localhost:8080.

应用程序容器在 9000 上有一个端口映射来访问应用程序本身 http://localhost:9000

所有 3 个容器都在一个 docker 网络中application_default(从 docker compose 开始)。

在应用程序内部,使用 keycloak 进行 openid 身份验证所需的信息由以下环境变量管理:

# KEYCLOAK CREDENTIALS
APP_KEYCLOAK_REALM="http://localhost:8080/auth/realms/myrealm"
APP_KEYCLOAK_RETURN_URL="http://localhost:9000/api/auth/openid/return"
APP_KEYCLOAK_CLIENT_ID=myapplication
APP_KEYCLOAK_CLIENT_SECRET="00d5c908-eade-4e26-bcf0-b9341ghie197"
Run Code Online (Sandbox Code Playgroud)

这些设置不起作用,通常实际上就像在应用程序容器内部一样, 的APP_KEYCLOAK_REALMlocalhost:8080不是指我的 PC(和 keycloak),而是指应用程序容器。

现在当我替换为

APP_KEYCLOAK_REALM="http://keycloak:8080/auth/realms/myrealm"
Run Code Online (Sandbox Code Playgroud)

该应用程序可以转到 keycloak,但是为​​了进行身份验证,我的浏览器被卡住了,试图将我重定向到一个对他来说没有任何意义的 url 开始 http://keycloak:8080/auth/realms...

我设法使配置正常工作的唯一方法是将我的 PC 的实际 IP 地址放在环境文件中:

# KEYCLOAK CREDENTIALS
APP_KEYCLOAK_REALM="http://192.168.1.34:8080/auth/realms/myrealm"
APP_KEYCLOAK_RETURN_URL="http://192.168.1.34:9000/api/auth/openid/return"
APP_KEYCLOAK_CLIENT_ID=myapplication
APP_KEYCLOAK_CLIENT_SECRET="00d5c908-eade-4e26-bcf0-b9341ghie197"
Run Code Online (Sandbox Code Playgroud)

这有效,但似乎不是可移植性的理想选择(IP 地址一直在变化)。

有没有标准的方法来做到这一点?可以将 docker dns …

docker keycloak docker-networking

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

在mysql和h2中使用相同的语法加入删除

我在mysql中有一个生产数据库,并在H2中进行一些Junit测试.
我正在努力寻找一种既可以在测试和生产中使用的语法,也可以删除2个表中的记录.
SQL查询使用发送到数据库

jdbctemplate.update(sqlQuery, queryArgs);
Run Code Online (Sandbox Code Playgroud)

到目前为止,我发现查询可以在mysql上运行但不在H2上,反之亦然.

我有2个表:请求和响应,在共同的datetime和milisec中有2列.这对夫妇(datetime,milisec)是请求的主键,同一对夫妇可以有几个回复.

我想删除与某些请求匹配的响应.

这个请求适用于我的sql但不适用于H2:

DELETE r.*
FROM responses AS r NATURAL JOIN Call_requests AS s
WHERE -- criteria on call_requests table
Run Code Online (Sandbox Code Playgroud)

我最接近的将是

DELETE FROM responses
where (datetime, milisec) in 
(select datetime, milisec from requests where -- criteria)
Run Code Online (Sandbox Code Playgroud)

这个上层版本适用于mysql而不是h2,其中以下带有括号的元组是反向的(适用于h2,而不是mysql)

DELETE FROM responses
where (datetime, milisec) in 
(select (datetime, milisec) from requests where -- criteria)
Run Code Online (Sandbox Code Playgroud)

mysql rdbms h2

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

@Autowire没有预先注入Spring @Bean配置

我在spring-social上练习,当我在Eclipse中执行"Run as Junit Test"时,似乎userConnectionRepository在以下代码中没有正确自动装配.在创建新的FacebookOffLine时,我在usersConnectionRepository上获得Null指针异常,尽管@Bean java创建代码中的断点显示它们似乎已正确创建.提前致谢,

public class FacebookOffline {

    private Facebook fb;

    @Autowired
    private UsersConnectionRepository usersConnectionRepository;

    public FacebookOffline(User user) {
        super();

        ConnectionRepository cr = usersConnectionRepository.createConnectionRepository(user.getId());
        fb = cr.getPrimaryConnection(Facebook.class).getApi();
    }

}
Run Code Online (Sandbox Code Playgroud)

这是测试代码:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {
        org.springframework.social.quickstart.config.MainConfig.class,
        org.springframework.social.quickstart.config.SocialConfig.class })
public class FacebookOfflineTest {

    @Test
    public void test1() {
        FacebookOffline essai = new FacebookOffline(new User("yves"));
Run Code Online (Sandbox Code Playgroud)

从Keith Donald Quick Start Sample改编的Spring配置类:

@Configuration
@ComponentScan(basePackages = "org.springframework.social.quickstart", excludeFilters = { @Filter(Configuration.class) })
@PropertySource("classpath:org/springframework/social/quickstart/config/application.properties")
public class MainConfig {

    @Bean
    public DataSource datasource() {
        DriverManagerDataSource toReturn = …
Run Code Online (Sandbox Code Playgroud)

java spring dependency-injection autowired

3
推荐指数
1
解决办法
1万
查看次数