java - 安装多个后端镜像时出现 docker 错误

标签 java python node.js docker

Dockerfile

FROM python:3.6
ENV PYTHONUNBUFFERED 1
WORKDIR /usr/src/rango
COPY ./ /usr/src/rango
RUN pip install -r requirements.txt

这是我的 docker-compose 文件

services:
  backend:
    container_name: backend
    build: ./
    command: python manage.py runserver 0.0.0.0:8000
    working_dir: /usr/src/rango
    ports:
      - "8000:8000"
    tty: true
    links:
      - java
      - elasticsearch
      - node

  #java
  java:
    image: openjdk:9-jre

  #elastic search
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.5.0
    ports:
      - "9200:9200"

  node:
    image: node:10.13.0

我正在使用的命令:

 sudo docker-compose up

当我运行命令时,我收到错误如下 backend_node_1_26e7640d2fbb 退出,代码为 0 backend_java_1_b1fbf7e151d7 退出,代码为 0

node 和 java 都没有运行。 我正在使用 Elasticsearch ,所以我需要 java

请查看我在下面分享的屏幕截图。

enter image description here

最佳答案

docker 镜像在其运行的语言运行时方面是自依赖的,这意味着它们包含运行特定进程所需的所有内容(不包括外部依赖项,例如数据库或其他服务)。

因此,ElasticSearch 镜像不需要 Java 容器,同样也不需要 Node 容器。它们将以 0 退出状态退出(表明它们已成功运行完成),因为您尚未指定要执行的命令(并且基础镜像中也没有定义默认命令)。

总之,您可以从撰写文件中删除 javanode 服务。

关于java - 安装多个后端镜像时出现 docker 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53355858/

相关文章:

python - 为什么要使用类?

python - Windows 上缺少 `magic` 库的文件

mysql - 循环中Mysql表消费者进程的行轮换

java - 错误: cannot find symbol method setSupportImageTintList(ColorStateList)

python - Python 中的 "lambda"到底是什么?

node.js - 如何在 MongoDB collection.find() 上获得回调

node.js - Mongo Find() 函数不会排除 _id

java - 为什么 onNewIntent(Intent intent) 方法被调用两次?

java - 如何查找OutOfMemoryError的原因?

Java - 声明顺序中的反射 getDeclaredMethods 奇怪的行为