簡體   English   中英

如何在 java 上接收來自 docker-compose.yml 的環境參數?

[英]How can I receive environment params from docker-compose.yml on java?

我正在用 Spring Boot 做一個 Java 應用程序,將從 docker-compose.yml 接收一個 cron 調度程序。 在 NetBeans 中,我可以從 application.yml 中讀取值,但是當我在 docker 服務器上部署圖像時,我無法收到此參數。

docker-compose.yml

  integracao-spot:
    container_name: integracao-spot
    image: yuricolen13/integracaospot
    restart: always
    environment:
      jobs_produto_cron: '0 40 9 * * *'
      jobs_estoque_cron: '0 42 9 * * *'
      jobs_vendas_cron: '0 44 9 * * *'

應用.yml

jobs:
  produto:
    cron: '0 33 16 * * *'
  estoque:
    cron: '0 34 16 * * *'
  vendas:
    cron: '0 35 16 * * *'

EstoqueJob.class

@Component
@EnableScheduling
public class EstoqueJob {

    public String diretorioLocal = "";
    public String diretorioBucket = "cliente/indiana/indiana/diario/";
    public String lojas = "(5,7,11,50,85)";

    @Scheduled(cron = "${jobs.estoque.cron:-}")
    public void estoqueJob() throws SQLException, IOException {
        
      System.out.println("JOB SCHEDULED");

}

從 docker-compose.yml 讀取參數

嘗試使用以下 application.yml

jobs:
  produto:
    cron: ${jobs_produto_cron}
  estoque:
    cron: ${jobs_estoque_cron}
  vendas:
    cron: ${jobs_vendas_cron}

請記住,根據命名約定的最佳實踐,環境變量必須以大寫字母命名。 JOBS_PRODUTO_CRON

同樣在您的docker-compose.yml中,您必須提供帶有-列表的值。

 ...
 environment:
      - jobs_produto_cron: '0 40 9 * * *'
      - jobs_estoque_cron: '0 42 9 * * *'
      - jobs_vendas_cron: '0 44 9 * * *'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM