相关疑难解决方法(0)

如何将环境变量传递给Docker容器?

我是Docker的新手,目前还不清楚如何从容器访问外部数据库.是连接字符串中硬编码的最佳方法吗?

# Dockerfile
ENV DATABASE_URL amazon:rds/connection?string
Run Code Online (Sandbox Code Playgroud)

environment-variables docker dockerfile

733
推荐指数
14
解决办法
71万
查看次数

限制Docker容器中的JVM内存消耗

我有一个Spring Boot应用程序实现了一个我想在Docker容器中运行的服务.我遵循官方Spring文档的指导原则,建议创建类似于此的DockerFile:

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD gs-spring-boot-docker-0.1.0.jar app.jar
RUN sh -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
Run Code Online (Sandbox Code Playgroud)

然后一旦图像被推送到Docker我使用Docker Compose以这种方式启动它:

  spring-boot-docker:
    ports:
    - "80:80"
    expose:
    - "80"
    image: my-repo/spring-boot-docker:0.1.0-SNAPSHOT
    container_name: spring-boot-docker
    environment:
      JAVA_OPTS: '-Xmx64m'
Run Code Online (Sandbox Code Playgroud)

这里我得到了JAVA_OPTS限制内存分配的变量,但是,当我执行时docker stats spring-boot-docker,容器占用的内存过多(我知道JVM占用的总内存可能远远超过64M,但在这种情况下完全是无边).

我也尝试过这个mem_limit参数,但这显然会减慢应用程序的速度.

java docker spring-boot docker-compose

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

如何从 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
查看次数