Задача
Мой проект просто отлично строится с использованием sbt docker:publish
или sbt docker:publishLocal
, но когда я запускаю образ, происходит сбой со следующей трассировкой стека:
eleanor@demo-machine:~/workbench/opendar/opendar$ docker run eholley/opendar:1.0-SNAPSHOT
Oops, cannot start the server.
java.nio.file.AccessDeniedException: /opt/docker/RUNNING_PID
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:434)
at java.nio.file.Files.newOutputStream(Files.java:216)
at play.core.server.ProdServerStart$.createPidFile(ProdServerStart.scala:136)
at play.core.server.ProdServerStart$.start(ProdServerStart.scala:43)
at play.core.server.ProdServerStart$.main(ProdServerStart.scala:25)
at play.core.server.ProdServerStart.main(ProdServerStart.scala)
eleanor@demo-machine:~/workbench/opendar/opendar$
Воспроизвести
Изображение является общедоступным на DockerHub под eholley / opendar: 1.0-SNAPSHOT. (В команде run я пропустил пару переменных среды, поэтому ожидаемый результат должен быть таким, что он завершится неудачно при конфигурации на основе application.conf вместо вышеуказанной ошибки.)
Если вы хотите попробовать собрать и упаковать его самостоятельно, вы можете клонировать https://0x00F3@bitbucket.org/0x00F3/opendar.git.
Что я пробовал
Эта проблема не совсем отличается от этой проблемы , поэтому я попытался добавить это
, как выстрел в темноте.
import com.typesafe.sbt.packager.docker.DockerChmodType
dockerChmodType := DockerChmodType.UserGroupWriteExecute
за совет в ветке. Похоже, это ничего не изменило.
Фон
- Ubuntu версия 18.04.2 LTS
- Java-версия openjdk 1.8.0_191
- версия 1.2.1
- Scala версия 2.12.6
- sbt-native-packager версия 1.3.21
- Play Framework версия 2.6.20