Docker:rails可执行文件没有在$ PATH中find
我正在尝试为Rails创build一个docker文件,它允许容器处理所有的需求,比如Ruby版本。 我有一个Rails项目,其中只有Rails定义(5.0.0.1)的Gemfile和Gemfile.lock。 下面是我的Dockerfile和Compose文件。 除了有一个标准的方法来启动新的项目,我想要cachinggem加快发展。 为此,我觉得我需要将bundle安装到Compose文件中。 但是现在如果我尝试生成Rails应用程序,则会收到在$ PATH中找不到的错误rails可执行文件:
docker-compose run web rails new . --force --database-postgresl --skip-bundle
我需要做些什么来解决这个问题? 当我正在使用现有的项目schemecachinggem时,将二进制文件添加到PATH似乎解决了这个问题,但不确定是否从头开始处理。
#ENV HOME=/usr/src/app PATH=/usr/src/app/bin:$PATH
Dockerfile
FROM ruby:2.3.3 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs RUN mkdir /docknewdev22C WORKDIR /docknewdev22C ADD Gemfile /docknewdev22C ADD Gemfile.lock /docknewdev22C ENV BUNDLE_PATH /gems #add the app's binaries path to $PATH: ENV HOME=/docknewdev22C PATH=/docknewdev22C/bin:$PATH #RUN bundle install (NOW IN COMPOSE FILE) ADD . /docknewdev22C
泊坞窗,COMPOSE.yml
version: '2.1' services: db: image: postgres volumes: - postgres-data:/var/lib/postgresql/data web: build: . #added bash command as server.pid was persisting so multiple runs would complain about existing server. command: bash -c "bundle install && rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" #mount the folder of the project from the local workstation. volumes: - .:/docknewdev22C - gem_cache:/gems ports: - "3000:3000" depends_on: - db volumes: postgres-data: driver: local gem_cache:
试试这个:
Dockerfile
FROM ruby:2.3.3 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs RUN gem install bundler -v 1.11.2 --no-ri --no-rdoc RUN mkdir /src WORKDIR /src COPY Gemfile Gemfile.lock ./ RUN bundle install # Copy the main application. COPY . ./ CMD ./start-dev.sh
start-dev.sh
rm /src/tmp/pids/server.pid bundle exec rails s -p 3000 -b '0.0.0.0'
这样,你不需要在你的泊坞窗的字段“命令”组成,只有当你想重写。 dockerfile的每一行都会创build一个图层,其中一个是关于安装gem RUN bundle install
所以如果你不更新行,那么你将每次从caching中创build图像。
- Docker撰写,导轨和绑定的开发环境 – 有点破碎
- 在做任何源码(Bundler :: GemNotFound)时,无法find链轮3.6.2
- 通过docker-compose生成的文件运行web rails g控制器没有权限编辑
- Docker-compose:在SIGTERM之后closures端口
- Docker-compose服务以–service-ports标志为默认值
- 无法运行rake db:在Docker-compose中的Dockerfile中创build
- 无法find由docker组成的Gemfile错误
- docker-compse生成错误 – 不受支持的版本
- docker可执行文件没有在$ PATH中find