Передача переменных из файла сборки Docker в файл Docker - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь передать переменную просто из файла сборки docker в файл docker, однако переменная никогда не разрешается

version: '3'
services:
    movie-discovery-server:
        container_name: movie-discovery-server
        build:
            args:
              PORT: 8761
            context: /Users/admin/Downloads/movie-discovery-server
            dockerfile: Dockerfile
        image: movie-discovery-server:latest
        environment:
          - PORT=8761
        expose:
            - 8761

А вот и Dockerfile

FROM openjdk:8
ADD ./target/movie-discovery-server-0.0.1-SNAPSHOT.jar movie-discovery-server-0.0.1-SNAPSHOT.jar
ARG PORT
ENTRYPOINT ["java", "-jar", "movie-discovery-server-0.0.1-SNAPSHOT.jar", "--server.port=$PORT"]

однако $ PORT никогда не разрешается

--- EDIT --- Оказалось, что я допустил пару ошибок в моих файлах, и мой ответ ниже будет содержать правильный формат файла

Ответы [ 2 ]

2 голосов
/ 17 апреля 2019

Ни ENTRYPOINT, ни CMD не разрешат переменные при использовании формата массива json.

Если вам нужно разрешить ПОРТ, используйте сценарий точки входа или используйте форму оболочки для ENTRYPOINT

ENTRYPOINT java -jar movie-discovery-server-0.0.1-SNAPSHOT.jar --server.port=$PORT
0 голосов
/ 17 апреля 2019

Оказалось, что я делаю пару вещей неправильно.Для файла составления Docker я внес следующие изменения:

  1. Удален тег args, поскольку он не имел никакого эффекта
  2. Замените тег expose на portsтег, поскольку отображение не работало правильно

    version: '3'
    services:
      movie-discovery-server:
        container_name: movie-discovery-server
        build:
            context: /Users/admin/Downloads/movie-discovery-server
            dockerfile: Dockerfile
        image: movie-discovery-server:latest
        ports:
          - "8761:8761"
        environment:
          - PORT=8761
    

Для DockerFile я применил мой совет от @codestation и отпустил формат JSON

FROM openjdk:8
ADD ./target/movie-discovery-server-0.0.1-SNAPSHOT.jar movie-discovery-server-0.0.1-SNAPSHOT.jar
ARG PORT
ENTRYPOINT java -jar movie-discovery-server-0.0.1-SNAPSHOT.jar --server.port=$PORT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...