簡體   English   中英

使用Docker-compose進行卷安裝的問題

[英]Issues with volume mounting with Docker-compose

每當我對我的rails應用程序中的任何控制器(或一般文件)進行更改時,我都看不到它們出現,直到我運行docker-compose downdocker-compose build ,最后是docker-compose up 基本上,我必須完全重建項目並再次運行以使我的更改生效。

顯示的唯一更改是對視圖所做的更改。

我目前獲得環境設置的過程是:

  1. cd進入包含Dockerfile的目錄
  2. 運行docker-compose build(如果尚未構建)
  3. 運行docker-compose up

我錯過了什么? 我正在使用Docker for Windows。

我的docker-compose.yml如下:

version: '2'
services:
  db:
    image: postgres
    environment:
        POSTGRES_DB: dev
        POSTGRES_USER: user
        POSTGRES_PASSWORD: password
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db

Dockerfile如下:

FROM ruby:2.3.1
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
ADD . /myapp

您是否嘗試過在docker-compose文件中設置音量?

https://docs.docker.com/v1.8/compose/yml/#volumes

- HOST_PATH:CONTAINER_PATH

web:
  volumes:
    - ./src:/app/user/src

您不需要在Dockerfile中創建路徑:

RUN mkdir /myapp

如果你將它掛載在docker-compose.yml中

volumes:
  - .:/myapp

請刪除行:

ADD . /myapp

我認為這是問題 -

ADD指令從中復制新文件,目錄或遠程文件URL,並將它們添加到路徑中容器的文件系統中。 https://docs.docker.com/engine/reference/builder/#/add

所以看起來這個命令只復制文件一次而不是掛載它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM