Docker: выход приложения Play Framework с кодом 0 - PullRequest
0 голосов
/ 02 апреля 2020

Я работаю над докеризацией своего scala игрового фреймворка. Docker строится успешно, но docker запускается с кодом 0.

user-service | [info] Loading project definition from /app/project
user-service | [info] Set current project to user-service (in build file:/app/)
user-service | 
user-service | SLF4J: Class path contains multiple SLF4J bindings.
user-service | SLF4J: Found binding in [jar:file:/app/lib/logback-classic-1.2.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
user-service | SLF4J: Found binding in [jar:file:/root/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
user-service | SLF4J: Found binding in [jar:file:/root/.ivy2/cache/org.slf4j/slf4j-nop/jars/slf4j-nop-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
user-service | SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
user-service | SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
user-service | --- (Running the application, auto-reloading is enabled) ---
user-service | 
user-service | [info] p.c.s.AkkaHttpServer - Listening for HTTP on /0.0.0.0:9004
user-service | 
user-service | (Server started, use Enter to stop and go back to the console...)
user-service | 
user-service | [info] p.c.s.AkkaHttpServer - Stopping server...
user-service | 
user-service | [success] Total time: 4 s, completed Apr 2, 2020 10:40:20 AM
user-service exited with code 0

Мой Dockerfile

FROM sshek2019/docker-scala

WORKDIR '/app'

COPY

EXPOSE 9004

CMD ["sbt", "run"]

Мой docker -компонентный файл

version: "3.7"

services:
  api:
    build: .
    container_name: user-service
    expose:
      - "9004"
    ports:
      - "9004:9004"

1 Ответ

0 голосов
/ 02 апреля 2020

Ваш конфиг говорит, что при вводе / закрытии стандартного ввода ваше приложение должно быть закрыто, что завершает его сразу после включения. Вы должны отключить режим разработки для docker изображения.

Например, вы можете использовать режим тестового экземпляра :

CMD ["sbt", "runProd"]

Однако вы лучше запустить sbt в Docker в интерактивном режиме, чтобы стандартный ввод не закрывался немедленно.

docker run --it ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...