如何使用NGINX访问写在docker容器卷上的文件并将URL共享到客户端

问题描述 投票:2回答:1

我是使用Docker的新手。我已经安装了MUP(meteor-up)来部署我的流星应用程序。而内部使用Docker。

在使用MUP(Docker)之前: -

我只是将我的一些文件(CSV)写入我的Ubuntu机器中的/ opt / AHD目录。在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

这是完美的运行,但因为我使用内部使用Docker的MUP。所以现在我经历并发现我的机器/ opt / AHD目录上没有写任何文件。因为它们是用容器范围编写的,即它们是用来写的

无功/ lib中/泊坞窗/ overlay2 / e4cc915015ea4f1e177175b52675f67223235c909b7680dfbe9a566af303afe7 /比较/选择/ AHD / 1536673499271.csv

根据docker,上面的目录很好。

但是因为我想将URL分享给客户端,以便在客户端下载CSV文件。

所以我的问题是: -

如何配置我的Nginx以便它可以与容器目录一起使用而不是我的机器目录,我将能够通过NGINX在客户端下载该文件。

我已经完成了很少的博客,但是我不知道如何以及我需要给我的nginx访问docker容器文件的配置。

任何帮助深表感谢。

谢谢

node.js docker nginx meteor mup
1个回答
0
投票

您是否尝试将/ 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继续前进。

© www.soinside.com 2019 - 2024. All rights reserved.