Докер направляет доступ к CSV в папке динамически - PullRequest
0 голосов
/ 06 ноября 2018

Я довольно новичок в Docker, и у меня проблема с путем.

Мой текущий проект - приложение RoR, в котором csv-файлы загружаются в базу данных PostgreSQL и обрабатываются для предоставления пользователю информации. Чтобы избежать повторяющихся задач, я создал и автоматический сбор CSV каждые несколько часов. Для этого пользователю необходимо указать путь к данным, таким как C: \ user \ mydocuments, а приложение сделает все остальное.

При запуске приложения без докера локально все работает нормально, но как только оно развернуто в контейнере, я не могу получить доступ к папкам на машине.

Socket.gethostname дает мне имя контейнера, и я думаю, что это проблема, но я не могу найти правильный способ выразить путь к папке.

Я провел небольшое исследование, но не смог найти подходящих ответов. У кого-нибудь было решение этой проблемы? Или я пытаюсь сделать что-то невозможное?

Edit:

docker-compose.yml

 version: '3'
        services:
          db:
            image: postgres:10
          web:
            build: ./ 
            ports:
              - "3000:3000"
            depends_on:
              - db

Dockerfile

FROM ruby:2.3.3
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp
EXPOSE 3000
CMD ["bundle", "exec", "rails", "server", "-p", "3000", "-b", "0.0.0.0"]

auto_import.rb

path = 'C:/Users/Documents/*.csv'
all_files_in_folder = Dir[path]
length_folder =  all_files_in_folder.length
all_files_in_folder.each do |file_selected|
    ...
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...