If like me you are or have been confronted with corporate proxies bullshit and whatnot, you might understand this article's title.
I cannot even count the amount of time I have lost trying to make things work, fiddling, googling, etc.
After running into so many walls, I decided to document my journey through Proxy Hell, one of the missing circles of Hell as described in Dante's Inferno.
This list isn't exhaustive but represents the many configurations I had to set up in my former position.
Hopefully, it will be of use to you.
apt
Create a new file in /etc/apt/apt.conf.d/
And add the following lines in the file proxy.conf. Create it if it doesn't exist.
Acquire::http::Proxy "http://user:password@proxy.server:port/";
Acquire::https::Proxy "http://user:password@proxy.server:port/";
git
git config --global http.proxy <http://proxyUsername:proxyPassword@proxy.server.com>:port
git config --global https.proxy <https://proxyUsername:proxyPassword@proxy.server.com>:port
npm
npm config set proxy "<http://"username:password"@proxy.big-corp.com>"
npm config set https-proxy "<http://"username:password"@proxy.big-corp.com>"
If you're running nodejs INSIDE a Docker container you might have to set the proxy for the npm running INSIDE the container before running npm install. Otherwise the install just won't work when building your containers.
Dockerfile
FROM node:14.2.0
ARG HTTP_PROXY
WORKDIR /server
COPY package*.json ./
RUN npm config set proxy $HTTP_PROXY
RUN npm install
This line: ARG HTTP_PROXY declares a docker variable that you can pass when building your container.
The RUN npm config set proxy $HTTP_PROXY line sets the proxy for the npm instance running in your container.
Edit your docker-compose file
build:
context: .
args:
HTTP_PROXY: ${HTTP_PROXY}
It has to be under the build section.
Here I set the proxy by calling my machine's environment variable.
You can also hardcode the proxy value but it's not really safe.
build:
context: .
args:
HTTP_PROXY: <http://"username:password"@proxy.big-corp.com>
curl
Edit or create the file located at ~/.curlrc
And add this line :
proxy = <http://username:password@ip>:port
Top comments (0)