在创建我的 api 服务时“无法在任何来源 (Bundler::GemNotFound) 中找到 rake-13.0.3”

问题描述

docker-compose.yml

version: "3.7"
services:
  courseshine_redis:
    container_name: courseshine_redis
    image: redis:latest
    command: redis-server --requirepass ${POSTGRES_PASSWORD}
    restart: always
    env_file: .env
    stdin_open: true
    ports:
      - ${REdis_PORT}:${REdis_PORT}
    volumes:
      - courseshine_redis_data:/data
    networks:
      - internal

  courseshine_db:
    container_name: courseshine_db
    build:
      context: ../..
      dockerfile: courseshine_docker/development/courseshine_db/Dockerfile
    restart: always
    env_file: .env
    environment:
      - POSTGRES_MULTIPLE_DATABASES=${POSTGRES_DEV_DB},${POSTGRES_TEST_DB}
    ports:
      - ${COURSESHINE_DB_PORT}:${COURSESHINE_DB_PORT}
    volumes:
      - courseshine_postgres_data:/var/lib/postgresql/data
      - ./courseshine_db:/dockerfile-entrypoint-initdb.d
    networks:
      - internal

  courseshine_pgadmin:
    container_name: courseshine_pgadmin
    image: dpage/pgadmin4:4.21
    restart: unless-stopped
    env_file: .env
    environment:
      - PGADMIN_DEFAULT_EMAIL=${POSTGRES_USER}
      - PGADMIN_DEFAULT_PASSWORD=${POSTGRES_PASSWORD}
    volumes:
      - pgadmin:/var/lib/pgadmin
      - courseshine_postgres_data:/var/lib/postgresql/data
    depends_on:
      - courseshine_db
    networks:
      - internal

  courseshine_api: &api_base
    container_name: courseshine_api
    build:
      context: ../..
      dockerfile: courseshine_docker/development/courseshine_api/Dockerfile
    env_file: .env
    stdin_open: true
    volumes:
      - ../../courseshine_api:/var/www/courseshine/courseshine_api
      - /var/run/docker.sock:/var/run/docker.sock
      - bundle_cache:/usr/local/bundle
    depends_on:
      - courseshine_redis
      - courseshine_db
    networks:
      - internal

  courseshine_ui:
    container_name: courseshine_ui
    build:
      context: ../../
      dockerfile: courseshine_docker/development/courseshine_ui/Dockerfile
    env_file: .env
    stdin_open: true
    volumes:
      - ../../courseshine_ui:/var/www/courseshine_ui
    depends_on:
      - courseshine_api
    networks:
      - internal

networks:
  internal:
volumes:
  courseshine_redis_data:
  courseshine_postgres_data:
  pgadmin:
  bundle_cache:

我的courseshine_api服务的docerfile

FROM ruby:2.7.1-slim-buster

RUN apt-get update -qq && apt-get install -y build-essential nodejs  libpq-dev postgresql-client && rm -rf /var/lib/apt/lists/*

ENV APP_HOME /var/www/courseshine/courseshine_api

RUN mkdir -p $APP_HOME
workdir $APP_HOME

copY ./courseshine_api/Gemfile $APP_HOME/Gemfile
copY ./courseshine_api/Gemfile.lock $APP_HOME/Gemfile.lock
RUN bundle install --path vendor/cache
# copy the main application.
copY ./courseshine_api $APP_HOME 

# Add a script to be executed every time the container starts.
copY ./courseshine_docker/development/courseshine_api/entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]

# Expose port 3000 to the Docker host,so we can access it
# from the outside.
EXPOSE 3000

# The main command to run when the container starts. Also
# tell the Rails dev server to bind to all interfaces by
# default.
CMD ["rails","server","-b","0.0.0.0"]

entrypoint.sh

设置 -e

rm -f $APP_HOME/tmp/pids/server.pid

执行“$@”

当我点击 docker-compose up 时,courseshine_api 服务无法启动并抛出无法在任何来源 (Bundler::GemNotFound) 中找到 rake-13.0.3。为什么会出现这个问题以及如何解决这个问题..

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...