Start tor and polipo when I launch my container
# Pull base image. FROM ubuntu:latest # Upgrade system RUN apt-get update && apt-get dist-upgrade -y --no-install-recommends && apt-get autoremove -y && apt-get clean # Install TOR RUN apt-get install -y --no-install-recommends tor tor-geoipdb torsocks && apt-get autoremove -y && apt-get clean # INSTALL POLIPO RUN apt-get update && apt-get install -y polipo # Default ORPort EXPOSE 9001 # Default DirPort EXPOSE 9030 # Default SOCKS5 proxy port EXPOSE 9050 # Default ControlPort EXPOSE 9051 # Default polipo Port EXPOSE 8123 RUN echo 'socksParentProxy = "localhost:9050"' >> /etc/polipo/config RUN echo 'socksProxyType = socks5' >> /etc/polipo/config RUN echo 'diskCacheRoot = ""' >> /etc/polipo/config RUN echo 'ORPort 9001' >> /etc/tor/torrc RUN echo 'ExitPolicy reject *:*' >> /etc/tor/torrc RUN mkdir scrapy ADD scrapyTor scrapy ADD startpolipotor.sh . RUN chmod 775 ./startpolipotor.sh
my startpolipotor.sh contains 3 lines:
#!/bin/bash /etc/init.d/tor start & /etct/init.d/polipo start &
But when I launch this command:
docker run -i -t id_image /bin/bash
And once inside in the container when I launch
ps, I see nothing.
How I can resolve this?
One Solution collect form web for “Start tor and polipo when I launch my container”
Dockerfile should have a command defined like:
Then you do not need to provide
/bin/bash as a
run command. Only the following should be enough:
docker run -i -t id_image
By the way: your script file creates two processes running in background. That will not work!
Docker containers need to have always a process in foreground. In your case the container would stop immediately after executing your start script. And while stopping the
SIGTERM will not properly be sent to those background processes so they will simply get killed and may leave some corrupt data.
You should think about using
supervisord instead when you need to have multiple processes in your container started.