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 失败的主要内容,如果未能解决你的问题,请参考以下文章
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