2

我是使用 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 目录上没有写入任何文件。因为它们是在容器范围内编写的,即它们是在

var/lib/docker/overlay2/e4cc915015ea4f1e177175b52675f67223235c909b7680dfbe9a566af303afe7/diff/opt/AHD/1536673499271.csv

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

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

所以我的问题是:-

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

我已经浏览了几篇博客,但不知道我需要如何以及需要什么配置来为我的 nginx 提供访问 docker 容器文件。

任何帮助深表感谢。

谢谢

4

1 回答 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 继续前进的机器目录。

于 2018-09-12T09:42:32.737 回答