小编mTv*_*mTv的帖子

以 root 而不是 Docker 中的当前用户身份创建的挂载文件夹

尝试通过命令将卷安装到我的容器docker run。似乎该文件夹始终以 root 用户而不是容器用户身份创建。这使得我缺乏对该文件夹的权限(无法创建或写入用于日志记录的文件)。

使用此命令进行一些测试: docker run -it --entrypoint /bin/bash -v $PWD/logs:/home/jboss/myhub/logs:rw myImage:latest

如果我现在执行命令:ls -ld /logs我得到结果:drwxr-xr-x 2 root root 4096 Jun 12 13:01 logs/

在这里我们可以看到只有所有者拥有写权限。root 是所有者。我希望(我想要)jboss 成为该文件夹的所有者。或者至少所有用户都具有给定参数:rw中的选项的读/写权限-v

我在这里不明白什么?我怎样才能让它按照我想要的方式工作?

docker

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

应用:以编程方式聚焦元素时焦点可见

当我使用键盘聚焦或使用以编程方式聚焦时,我想将样式应用于我的元素HTMLElement.focus()

例如在下面的例子中。我希望<div>最初或当我使用选项卡聚焦时具有蓝色边框。<div>我只希望当我使用鼠标单击时它具有红色边框。

这可能吗?

EDIT1:从使用按钮触发焦点更改为仅在渲染上触发焦点,因为这种情况对于我的实际问题并不准确。

EDIT2:从 vanilla JS 更改为 React,因为我认为这可能是问题所在。似乎它仍然像我想要的那样工作,但不在我的应用程序中:(。我不知道为什么。

const useFocusOnMount = (ref) => {
  React.useEffect(() => {
    if (ref.current) {
      ref.current.focus();
    }
  }, [ref]);
};


const App = (props) => {
  const divRef = React.useRef(null)
  
  useFocusOnMount(divRef);

  return (
  <div ref={divRef} role="listbox" tabindex="0" className="focusable">
    <div data-testid="displayValue">Lol</div>
  </div>
  );
};

ReactDOM.render(<App />, document.getElementById("root"));
Run Code Online (Sandbox Code Playgroud)
.focusable {
  border: 1px solid lightgrey;
  outline: none;
}

.focusable:focus {
  border: 2px solid red;
}
.focusable:focus-visible {
  border: 2px solid blue; …
Run Code Online (Sandbox Code Playgroud)

javascript css reactjs

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

bean类中的属性值在构造函数中为null

我正在尝试使用服务实现类/ bean中的application.properties文件中的值。但是,当通过我的config类初始化bean时,属性值全部为null。

配置类:

@Configuration
public class AppConfig {
    @Bean AppServiceImpl appServiceImpl() {
        return new AppServiceImpl();
    }
}
Run Code Online (Sandbox Code Playgroud)

服务等级:

@Component
public class AppServiceImpl implements AppService {
    @Value("${value.one}")
    String value_one;

    @Value("${value.two}")
    String value_two;

    @Value("${value.three}")
    String value_three;

    //values are null here
    public AppServiceImpl() {
        functionOne(value_one, value_two, value_three);
    }
}
Run Code Online (Sandbox Code Playgroud)

application.properties(在src / main / resources下):

value.one=1
value.two=2
value.three=3
Run Code Online (Sandbox Code Playgroud)

做一些调试,我可以看到AppConfig类已经找到了属性文件,如果我尝试声明该属性文件,则@Value("${value.one}") String value_one;表明它已得到1预期的值。

但是在我的AppServiceImpl类中,所有值都是null。我在这里做错了什么?如何在Springboot中正确完成此操作?甚至只是春天。

谢谢。

java spring spring-boot

4
推荐指数
1
解决办法
2184
查看次数

如何从 Docker 'run' 命令设置 Spring Boot 属性

我有一个 Spring Boot 应用程序,我打算将其部署为 docker 容器。

我正在使用 DOCKERFILE 使用入口点构建图像: ENTRYPOINT ["java", "-jar", "myFolder/app.jar"]

图像在 JENKINSFILE 中构建,如下所示: docker build . -t repo/app:latest

我正在使用脚本来运行 docker 映像。我想根据该脚本的参数设置自定义属性的值。

所以说我有一个自定义属性:custom.property.isTest=false. 它控制 bean 应该返回哪个类,例如

@Value("${custom.property.isTest:false}")
boolean isTest;

@Bean
public MyService myServiceImpl(){
    if(isTest) {
        return new myServiceTestImpl();
    } else {
        return new myServiceImpl();
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够在运行 docker 映像时设置此值。例如使用参数:-e做这样的事情(不起作用)'custom.property.isTest=true'。那可能吗?

谢谢

spring docker spring-boot

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

标签 统计

docker ×2

spring ×2

spring-boot ×2

css ×1

java ×1

javascript ×1

reactjs ×1