Node.js 用于打开和关闭代理的Dockerfile

Node.js 用于打开和关闭代理的Dockerfile,node.js,docker,proxy,docker-compose,Node.js,Docker,Proxy,Docker Compose,我运行docker compose up-d来构建和运行两个容器 -- docker-compose.yml node: build: . links: - mongo ports: - "80:80" - "443:443" - "8080" - "9000:9000" mongo: image: mongo:3.2 ports: - "27017" 在我的Dockerfile中,我设置了http\u proxy和http

我运行
docker compose up-d
来构建和运行两个容器

-- docker-compose.yml

node:
  build: .
  links:
    - mongo
  ports:
    - "80:80"
    - "443:443"
    - "8080"
    - "9000:9000"
mongo:
  image: mongo:3.2
  ports:
    - "27017"
在我的Dockerfile中,我设置了
http\u proxy
https\u proxy
ENV vars

-- Dockerfile
ENV http_proxy http://proxy-address.co.uk:80/
ENV https_proxy http://proxy-address.co.uk:80/
我需要能够在代理上和代理下运行它,因此理想情况下,如果需要设置变量,我可以在命令行上传递变量,这将是非常棒的


有办法做到这一点吗?

有很多选择:

其中一项:

您可以将var放在.env文件中

http_proxy=http://proxy-address.co.uk:80/
并用于作曲

node:
  build: .
  links:
    - mongo
  ports:
    - "80:80"
    - "443:443"
    - "8080"
    - "9000:9000"
  environment:
    http_proxy: ${http_proxy}
细节

如果它对其他人有帮助,这就是我最终解决这个问题的方法。因此,
docker compose
可以从主机读取环境变量

--Added the following to my Dockerfile
ARG http_proxy
ARG https_proxy
和我的
docker compose.yml

version: "2.0"
services:
  node:
    build:
      context: .
  args:
    http_proxy: ${http_proxy}
    https_proxy: ${http_proxy}
  links:
    - mongo
  ports:
    - "80:80"
    - "443:443"
    - "8080"
    - "9000:9000"
  mongo:
    image: mongo:3.2
  ports:
    - "27017"

谢谢你的回答,但我只是想知道这是否设置了var,我是开代理还是关代理?而且这似乎不起作用,我不完全确定你是否理解这个问题?