首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker compose:运行命令变量替换不起作用

Docker compose:运行命令变量替换不起作用
EN

Stack Overflow用户
提问于 2018-04-20 04:16:03
回答 1查看 137关注 0票数 0

问题

替换在构建阶段不起作用

文件

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

代码语言:javascript
复制
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

用于服务的Dockerfile /kibana:

代码语言:javascript
复制
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

环境文件(仅限kibana部分):

代码语言:javascript
复制
KIBANA_VERSION=6.2.3
KIBANA_HTTP_PORT=5601
KIBANA_ELASTICSEARCH_HOST=elasticsearch
KIBANA_ELASTICSEARCH_PORT=9200

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

代码语言:javascript
复制
#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

预期输出(类似的内容):

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2018-04-20 04:28:29

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

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

代码语言:javascript
复制
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

解决方案是以下几行:

代码语言:javascript
复制
USER kibana

ARG KIBANA_VERSION=${KIBANA_VERSION}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49929523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档