Как получить доступ к файлу, записанному на томах док-контейнера, и предоставить URL-адрес клиентской стороне с помощью NGINX - PullRequest
0 голосов
/ 12 сентября 2018

Я новичок в использовании Docker. Я установил MUP (meteor-up) для развертывания моего метеорного приложения. И это внутренне с помощью Docker.

Перед использованием MUP (Docker): -

Я просто записываю несколько своих файлов (CSV) в каталог / opt / AHD на моей машине с Ubuntu. И с помощью NGINX я просто отправляю URL-адрес клиентской стороне и автоматически загружаю этот файл.

Конфигурация моего NGINX была: -

server {
    listen 7004;
    listen [::]:7004;

    server_name _;

    root /;
    #index index.html;

    location /opt {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    # Following is necessary for Websocket support
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    autoindex on;
    }

И я просто делюсь URL-адресом файла со стороны моего сервера на стороне клиента, т.е. что-то вроде: -

http://myapp:7004/opt/AHD/1536673499271.csv

Это было отлично выполнено, но я использую MUP для внутреннего использования с помощью Docker. Итак, теперь, когда я прошёл и обнаружил, что на моей машине / opt / AHD не написано ни одного файла. Потому что они написаны в области действия контейнера, т.е. они написаны в

вар / Библиотека / грузчик / overlay2 / e4cc915015ea4f1e177175b52675f67223235c909b7680dfbe9a566af303afe7 / дифф / Opt / AHD / 1536673499271.csv

вышеуказанный каталог, который подходит для докера.

Но так как я хочу поделиться URL на стороне клиента, чтобы файл CSV загружался на стороне клиента.

Итак, мой вопрос: -

Как я могу настроить мой Nginx так, чтобы он работал с каталогом-контейнером вместо моего машинного каталога, и я смогу загрузить файл на стороне клиента через NGINX.

Я уже прочитал несколько блогов, но не узнал, как и в какой конфигурации мне нужно предоставить nginx для доступа к файлам контейнера Docker.

Любая помощь очень ценится.

Спасибо

1 Ответ

0 голосов
/ 12 сентября 2018

Вы пытались монтировать каталог / opt / AHD с каталогом / opt / AHD внутри контейнера?

Пожалуйста, посмотрите на эту страницу: http://meteor -up.com / docs.html

В примере конфигурации, смотрите раздел томов

// lets you add docker volumes (optional). Can be used to
// store files between app deploys and restarts.
volumes: {
  // passed as '-v /host/path:/container/path' to the docker run command
  '/host/path': '/container/path',
  '/second/host/path': '/second/container/path'
},

Вы можете использовать это. Просто добавьте еще одну строку

'/opt/AHD/': '/opt/AHD'

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

...