scala - 为什么容器启动后不运行?
问题描述
我正在使用https://sbt-native-packager.readthedocs.io/en/stable/introduction.html来构建我的 scala 应用程序,并希望将应用程序发布为本地 docker 容器。
我输入了以下命令:
sbt docker:publishLocal
我想,一切都很好,我已经生成了一个图像:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sapmock 0.1 db261ab225b5 About a minute ago 664MB
<none> <none> 0940c75d8e5a About a minute ago 703MB
openjdk 8 bec43387959a 10 days ago 625MB
为什么要sbt
创建图像<none>
?
当我将图像作为容器运行时,它会立即停止:
~/scala/sapmock$ docker run -d -p 8080:80 sapmock:0.1
91abf0e00e3a46baa78a09b9eccd3c562ae82d5b058d5e122e8927f8e7307afd
~/scala/sapmock$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
91abf0e00e3a sapmock:0.1 "/opt/docker/bin/sap…" 10 seconds ago Exited (0) 8 seconds ago upbeat_brattain
~/scala/sapmock$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
为什么?
资源可以在这里找到:https ://gitlab.com/sweetsoft/sapmock
另外,生成的docker文件的内容:
FROM openjdk:8 as stage0
WORKDIR /opt/docker
COPY opt /opt
USER root
RUN ["chmod", "-R", "u=rX,g=rX", "/opt/docker"]
RUN ["chmod", "u+x,g+x", "/opt/docker/bin/sapmock"]
FROM openjdk:8
USER root
RUN id -u demiourgos728 2> /dev/null || (( getent group 0 || groupadd -g 0 root ) && useradd --system --create-home --uid 1001 --gid 0 demiourgos728 )
WORKDIR /opt/docker
COPY --from=stage0 --chown=demiourgos728:root /opt/docker /opt/docker
EXPOSE 8080
USER 1001:0
ENTRYPOINT ["/opt/docker/bin/sapmock"]
CMD []
解决方案
推荐阅读
- c# - 在我的 Unity 项目中调用 TextBox 构造函数时引发 NotImplementedException
- ruby-on-rails - Rails 中没有路线匹配 [POST]
- r - 如果出现 1,则变量的所有后续元素必须为 1,按主题分组
- javascript - Promise Chaining:多个 then 调用
- html - 如何在 CSS 中从左右框到文本中间画一条线?
- sql - 使用重复序列 sql server 排序
- html - 如果空间大于最小网格间隙,则 Css Grid 最大化元素之间的空间
- inheritance - 使用打字稿扩展/继承泛型时遇到问题
- python - Discord.PY 我想发出邀请命令
- android - 什么会导致 NsdManager.discoverServices() 停止在特定设备上查找服务?