【发布时间】:2019-07-15 19:28:29
【问题描述】:
我一直试图让这个应用程序运行一段时间。它不会给我任何错误来构建它,并且当我的队友遵循相同的步骤时它可以工作。 但是,当我运行时
docker-compose run app bundle exec rake db:setup
我明白了
Starting joatu-db ... done
Starting joatu-v2_bundler_1 ... done
/joatu/Gemfile not found
我尝试使用以下方式捆绑它:
docker-compose run app bundle install
我明白了
Starting joatu-v2_bundler_1 ... done
Starting joatu-db ... done
[!] There was an error parsing `Gemfile`: No such file or directory @ rb_sysopen - /joatu/Gemfile. Bundler cannot continue.
我运行的是 Windows 10 版本 1809
我在 WSL 上运行它:Ubuntu 18.04
Docker 版本:docker engine 18.09
docker compose 版本:1.24.0 rc-1
docker文件是:
FROM ruby:2.4.5
MAINTAINER Robert JJ Smith <rsmithlal@gmail.com>
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs libssl-dev
RUN mkdir /joatu
WORKDIR /joatu
COPY Gemfile /joatu/Gemfile
COPY Gemfile.lock /joatu/Gemfile.lock
# Use a persistent volume for the gems installed by the bundler
ENV BUNDLE_GEMFILE=/joatu/Gemfile \
BUNDLE_JOBS=2 \
BUNDLE_PATH=/bundler \
GEM_PATH=/bundler \
GEM_HOME=/bundler
#RUN gem install bundler #tried with it and without it same error
RUN bundle install
COPY . /joatu
docker-compose.yml
version: '2.1'
volumes:
db-data:
services:
app:
container_name: joatu-app
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- $PWD:/joatu
volumes_from:
- bundler
ports:
- "3000:3000"
depends_on:
- db
links:
- db
env_file:
- './docker/.env.app.conf'
db:
container_name: joatu-db
volumes:
- db-data:/var/lib/postgresql/data
image: mdillon/postgis:latest
ports:
- 5432:5432
env_file:
- './docker/.env.app.conf'
bundler:
image: busybox
volumes:
- /bundler
我已将 . 更改为 $PWD 并再次尝试“取消屏蔽”,但仍然无效。
我已在 Windows 中的不同文件夹中移动,以查看是否是权限问题。它仍然没有工作。而且,我已经删除了图像并重建它,以确保旧图像不会影响更改。
任何帮助将不胜感激。
原文件app位于https://github.com/joatuapp/joatu-v2
编辑:
我运行了命令
docker-compose run app ls-la
并显示该文件夹为空。所以,现在我知道这是一个复制问题,但我仍然不知道如何解决它。
【问题讨论】:
-
您的应用程序本质上是否在 Docker 之外工作?如果删除所有
volumes:和额外的bundler:容器,映像构建是否有效? -
该应用程序在 docker 之外运行,也可以在其他人的计算机上运行。我试图从 docker-compose.yml 和 dockerfile 中删除捆绑器行,但我得到了“服务”应用程序“从“捆绑器”安装卷,这不是服务或容器的名称。”
标签: ruby-on-rails docker redis docker-compose