ruby-on-rails - docker-compose 中的 OpenJDK

标签 ruby-on-rails docker-compose java

目前我的 docker-compose 中有以下内容:

version: '2'

services:
  app:
    depends_on:
      - 'postgres'
      - 'elasticsearch'
      - 'java'
    build: .
    command: bash scripts/start.sh
    ports:
      - '3000:3000'
    volumes:
      - '.:/farma_alg_reborn'
    volumes_from:
    - box
    environment:
      ELASTICSEARCH_URL: elasticsearch:9200

  postgres:
    image: 'postgres:9.5'
    volumes:
      - 'postgres:/var/lib/postgresql/data'

  elasticsearch:
    image: 'elasticsearch:2'
    ports:
      - '9200:9200'
    volumes:
      - 'elasticsearch:/usr/share/elasticsearch/data'
    environment:
      - Des.network.host=0.0.0.0

  box:
    image: busybox
    volumes:
      - /box

  java:
    image: openjdk:latest


volumes:
  postgres:
  box:
  elasticsearch:

在使用此撰写文件启动的 Rails 应用程序中,我想调用嵌入 bash 命令 javajavac,但找不到它们 (sh: 1 :javac:未找到)当我尝试时。

我怎样才能做到这一点?

编辑1:

我的docker文件:

FROM ruby:2.4-slim

RUN apt-get install -qq -y --no-install-recommends \
  build-essential nodejs npm libpq-dev git fp-compiler nodejs-legacy libfontconfig1-dev cron
RUN npm install -g phantomjs

ENV APP /farma_alg_reborn

RUN mkdir -p $APP

WORKDIR $APP

ENV BUNDLE_PATH /box

COPY . $APP

最佳答案

您需要在 ruby​​ 应用程序镜像中安装 java-jdk 才能运行 java 命令。

关于ruby-on-rails - docker-compose 中的 OpenJDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45666449/

相关文章:

ruby-on-rails - 如何并排使用 simple_form 和 formtastic (active_admin)?

vue.js - axios、nuxt 和 docker 的奇怪行为

java - 刚接触java。无法刷新小程序类文件

java - 如何在文本文件中搜索多个字符串

ruby-on-rails - 将 Rails 多态性用于嵌套注释

ruby-on-rails - Netbeans 和 Rails 错误 : bin/ruby: No such file or directory -- script/rails (LoadError)

ruby-on-rails - rails : calling yield in a partial template?

ssl - 如何在 Windows 上使用 ssl 和 docker 桌面

docker - 我应该如何根据这个架构 Dockerise 这个 MEAN 堆栈?

javascript - 如何在 Javascript 中设置 session 属性,然后在 Spring Controller 中使用它?