gpt4 book ai didi

ruby-on-rails - Dockerfile是创建一个镜像还是多个镜像?

转载 作者:行者123 更新时间:2023-12-02 19:12:22 27 4
gpt4 key购买 nike

我的dock-compose.yml文件

 db:
image: postgres
ports:
- "5432"
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3030:3030"
links:
- db

我的Dockerfile
FROM ruby:2.1.4
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
RUN bundle install
ADD . /myapp
# RUN bundle exec rake db:create
# RUN bundle exec rake db:migrate
# RUN bundle exec rake db:seed

当我运行docker-compose up时,它会创建两个容器,一个带有Rails应用程序,另一个带有数据库。我的理解是,每个docker文件都会创建一个最终的docker镜像(因此会创建一个容器),但是在这种情况下,我们最终会创建两个不同的容器。有人可以向我解释一下,这是怎么回事?

最佳答案

docker-compose基于两个图像管理两个容器:

  • postgres容器基于existing image downloaded from Docker Hub:该容器不需要Dockerfile。如果您在本地没有它,它将被下载并保留为in your local image storage
  • web一个基于您的Dockerfile(由于build: .指令)
  • 关于ruby-on-rails - Dockerfile是创建一个镜像还是多个镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32929561/

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