gpt4 book ai didi

ruby-on-rails - 无法通过docker启动rails应用程序

转载 作者:行者123 更新时间:2023-12-02 18:09:37 24 4
gpt4 key购买 nike

我尝试使用 Ruby on Rails 应用程序构建 Docker 容器,但无法做到这一点。

Dockerfile

   FROM ruby:2.5.1
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs

RUN mkdir /noteapp
WORKDIR /noteapp

ADD Gemfile /noteapp/Gemfile
ADD Gemfile.lock /noteapp/Gemfile.lock

RUN bundle install

ADD . /noteapp
CMD ["rails","server","-b","0.0.0.0"]

docker-compose.yml

   version: '2' 
services:
db:
image: postgres
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/noteapp
ports:
- "3000:3000"
depends_on:
- db

运行命令后

sudo docker-compose up --build

我得到了结果,noteapp_web_1 exited with code 0执行此操作后,我尝试启动我的 docker 容器,一切正常,但我的应用程序在 localhost:3000 上没有响应

当我尝试查看日志(sudo docker log id)时,我得到了结果 console_result

但是当我尝试连接到我的容器时,我无法执行此操作,并收到错误:

sudo docker attach ee43805fd6cf
You cannot attach to a stopped container, start it first

我应该怎么做才能运行我的应用程序?

更新,我使用了@Upendra Chahar的解决方案并遇到这个问题 rails_error

rake_error

之后我解决了这个问题,现在我遇到了 postgresql 数据库的问题: postgresql_db

最佳答案

首先,您需要运行此命令在容器中创建 Rails 项目。

docker-compose run web rails new . --force --database=postgresql

之后你需要重建docker镜像

docker-compose build

然后更改您的 config/database.yml 文件

default: &default
adapter: postgresql
encoding: unicode
host: db
username: postgres
password:
pool: 5

development:
<<: *default
database: noteapp_development

test:
<<: *default
database: noteapp_test

比你需要运行

docker-compose up --build

关于ruby-on-rails - 无法通过docker启动rails应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52408153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com