【问题标题】:Docker compose: run command variable substitution doesn't workDocker compose:运行命令变量替换不起作用
【发布时间】:2018-04-19 20:16:03
【问题描述】:

问题

替换不适用于构建阶段

文件

docker-compose.yml(仅 kibana 部分):

kibana:
        build:
            context: services/kibana
            args:
                KIBANA_VERSION: "${KIBANA_VERSION}"
        entrypoint: >
            /scripts/wait-for-it.sh elasticsearch:9200
            -s --timeout=${ELASTICSEARCH_INIT_TIMEOUT}
            -- /usr/local/bin/kibana-docker
        environment:
            ELASTICSEARCH_URL: http://elasticsearch:9200
        volumes:
            - ./scripts/wait-for-it.sh:/scripts/wait-for-it.sh
        ports:
            - "${KIBANA_HTTP_PORT}:5601"
        links:
            - elasticsearch
        depends_on:
            - elasticsearch
        networks:
            - frontend
            - backend
        restart: always

服务/kibana 的 Dockerfile:

ARG KIBANA_VERSION=6.2.3
FROM docker.elastic.co/kibana/kibana:${KIBANA_VERSION}

USER root
RUN yum install -y which && yum clean all

USER kibana

COPY kibana.yml /usr/share/kibana/config/kibana.yml
RUN ./bin/kibana-plugin install https://github.com/sivasamyk/logtrail/releases/download/v0.1.27/logtrail-${KIBANA_VERSION}-0.1.27.zip
COPY logtrail.json /usr/share/kibana/plugins/logtrail/logtrail.json

EXPOSE 5601

Env 文件(仅 kibana 部分):

KIBANA_VERSION=6.2.3
KIBANA_HTTP_PORT=5601
KIBANA_ELASTICSEARCH_HOST=elasticsearch
KIBANA_ELASTICSEARCH_PORT=9200

实际输出(问题在这里:替换不起作用)

#docker-compose up --force-recreate --build kibana

.........

Step 8/10 : RUN ./bin/kibana-plugin install https://github.com/sivasamyk/logtrail/releases/download/v0.1.27/logtrail-${KIBANA_VERSION}-0.1.27.zip
 ---> Running in d28b1dcb6348
Attempting to transfer from https://github.com/sivasamyk/logtrail/releases/download/v0.1.27/logtrail--0.1.27.zip
Attempting to transfer from https://artifacts.elastic.co/downloads/kibana-plugins/https://github.com/sivasamyk/logtrail/releases/download/v0.1.27/logtrail--0.1.27.zip/https://github.com/sivasamyk/logtrail/releases/download/v0.1.27/logtrail--0.1.27.zip-6.2.3.zip
Plugin installation was unsuccessful due to error "No valid url specified."
ERROR: Service 'kibana' failed to build: The command '/bin/sh -c ./bin/kibana-plugin install https://github.com/sivasamyk/logtrail/releases/download/v0.1.27/logtrail-${KIBANA_VERSION}-0.1.27.zip' returned a non-zero code: 70

预期输出(类似的东西):

Step 8/10 : RUN ./bin/kibana-plugin install https://github.com/sivasamyk/logtrail/releases/download/v0.1.27/logtrail-${KIBANA_VERSION}-0.1.27.zip
 ---> Running in d28b1dcb6348
Attempting to transfer from https://github.com/sivasamyk/logtrail/releases/download/v0.1.27/logtrail-6.2.3-0.1.27.zip

【问题讨论】:

    标签: docker docker-compose dockerfile


    【解决方案1】:

    当我发布这个问题时,我在 5 分钟后找到了答案……该死的

    解决方案很愚蠢,但有效:我只需要为新用户重新定义 args。见:

    ARG KIBANA_VERSION=6.2.3
    FROM docker.elastic.co/kibana/kibana:${KIBANA_VERSION}
    
    USER root
    RUN yum install -y which && yum clean all
    
    USER kibana
    
    ARG KIBANA_VERSION=${KIBANA_VERSION}
    
    COPY kibana.yml /usr/share/kibana/config/kibana.yml
    RUN ./bin/kibana-plugin install https://github.com/sivasamyk/logtrail/releases/download/v0.1.27/logtrail-${KIBANA_VERSION}-0.1.27.zip
    COPY logtrail.json /usr/share/kibana/plugins/logtrail/logtrail.json
    
    EXPOSE 5601
    

    解决方法如下:

    USER kibana
    
    ARG KIBANA_VERSION=${KIBANA_VERSION}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      • 2021-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多