社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Akash Sharma

Akash Sharma 最近创建的主题
Akash Sharma 最近回复了

在Dockerfile中,在适当的位置添加json文件。 ADD dockerfile命令。

5 年前
回复了 Akash Sharma 创建的主题 » 将nginx的http请求映射到docker

是的,虽然这是可以做到的,但是仅仅靠docker是很难做到的。kubernetes将使这一切变得非常简单,像dns、服务映射都是开箱即用的。我将包括docker和kubernetes方法:

Docker方法: 初稿如下,在 nginx 服务器名称并用模式设置docker容器名称。为不同的容器创建/etc/hosts条目,如: 172.16.0.1 v1.docker.container版本 172.16.0.2 v2.docker.container版本

nginx服务器配置如下:

server {
    listen 80;

    server_name "~^(?<ns>[a-z]+.+)\.myapp\.io";

    resolver 127.0.0.1:53 valid=30s;

    # make sure $ns.docker.container is resolved to container IP
    set $proxyserver "$ns.docker.container";

    location / {
        try_files $uri @clusterproxy;
    }

    location @clusterproxy {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-IP $clientip;
        proxy_set_header X-Forwarded-For $clientip;
        proxy_set_header X-Real-IP $clientip;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-FORWARDED-PROTO 80;
        proxy_pass http://$proxyserver:80;
    }
}

Kubernetes方法: 为命名空间中的不同版本创建不同的服务和部署。假设命名空间是“app namespace”。服务名称不言而喻: 应用版本v1:v1应用服务 应用版本v2:v2应用服务

为了使NGiNX更灵活,可以将服务名称添加到命名空间到 $proxyserver

Nginx规则:

server {
    listen 80;

    server_name "~^(?<version>[a-z]+.+)\.myapp\.io";

    # you can replace this with kubernetes dns server IP
    resolver 127.0.0.1:53 valid=30s;

    # make sure $ns.docker.container is resolved to container IP
    set $proxyserver "$version.app-namespace.svc.kubernetes";

    location / {
        try_files $uri @clusterproxy;
    }

    location @clusterproxy {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-IP $clientip;
        proxy_set_header X-Forwarded-For $clientip;
        proxy_set_header X-Real-IP $clientip;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-FORWARDED-PROTO 80;
        proxy_pass http://$proxyserver:80;
    }
}
5 年前
回复了 Akash Sharma 创建的主题 » cron服务没有以docker container启动

默认情况下,Docker将只在 CMD 过程。一个是,加一个 entrypoint 在后台运行cron然后调用 命令 节点应用程序。 但我更喜欢运行两个容器,一个用于cron,另一个用于有助于分离关注点的fir容器的应用程序。一个容器将运行 cron 作为 命令 以及其他运行节点应用程序。

如果您想共享可以使用卷装载的文件系统。