Docker Compose with Rails docker-compose up 失败

Posted

技术标签:

【中文标题】Docker Compose with Rails docker-compose up 失败【英文标题】:Docker Compose with Rails docker-compose up failure 【发布时间】:2022-01-16 14:59:54 【问题描述】:

我尝试在 Windows 上使用 WSL2 通过 Rails on Docker 开发应用程序。

Gemfile 被容器中的下一条命令修改后,

rails new . --force --database=postgresql --skip-bundle

我必须安装 bundle,所以我退出了容器并使用了这个命令。

docker-compose up --build -d

然后发生错误说...

[+] Building 0.9s (2/3)
[+] Building 1.0s (3/3) FINISHED
 => [internal] load build definition from Dockerfile                                                               0.1s
 => => transferring dockerfile: 32B                                                                                0.1s
 => [internal] load .dockerignore                                                                                  0.1s
 => => transferring context: 2B                                                                                    0.0s
 => ERROR [internal] load metadata for docker.io/library/ruby:2.5                                                  0.8s
------
 > [internal] load metadata for docker.io/library/ruby:2.5:
------
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to create LLB definition: rpc error: code = Unknown desc = error getting credentials - err: exit status 1, out:

docker-compose.yml 是这样的。

version: '3'

services:
  web:
    build: .
    ports:
      - '3000:3000'
    volumes:
      - '.:/product-register'
    tty: true
    stdin_open: true

Dockerfile 是这样的。

FROM ruby:2.5
RUN apt-get update && apt-get install -y \
    build-essential \
    libpq-dev \
    nodejs \
    postgresql-client \
    yarn

WORKDIR /product-register
COPY Gemfile Gemfile.lock /product-register/
RUN bundle install

在进入容器并在容器中执行下一条命令之前,

rails new . --force --database=postgresql --skip-bundle

这个命令

docker-compose up -d

工作!!

我该怎么办???

【问题讨论】:

您可能会发现使用像 rbenv 这样的版本管理器更容易,没有 Docker,运行像 rails new 这样主动修改源代码的命令,并运行 RSpec 测试而不需要 Docker 间接层。我不会尝试直接在容器内编辑代码。 "docker-compose up --build -d" 命令在一段时间后起作用。我不知道它为什么起作用。顺便说一句,感谢您的快速回复! 【参考方案1】:

过了一会儿,我执行了命令,

docker-compose up --build -d

成功了!!

不知道为什么?

感谢您的合作。

如果你知道原因,我很高兴。

【讨论】:

以上是关于Docker Compose with Rails docker-compose up 失败的主要内容,如果未能解决你的问题,请参考以下文章

docker-compose运行Rails

markdown docker-composeを使ってrails new

markdown docker-composeを使ったrails gとか

无法打开到 localhost:9200 的 TCP 连接 - Rails on Docker compose

Docker compose with nginx 不断显示欢迎页面

Docker-compose.yml for NodeJs with MySQL on AWS Elastic Beanstalk 单容器 Docker