【发布时间】:2019-02-19 18:13:19
【问题描述】:
我想创建一个在 Google Cloud 上运行 squid 代理服务的 Dockerfile。我对 ENTRYPOINT 有点困惑:
FROM ubuntu:latest
ENV DEBIAN_FRONTEND noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN true
ENV SQUID_CACHE_DIR=/var/spool/squid
ENV SQUID_LOG_DIR=/var/log/squid
RUN apt-get install -y squid apache2-utils
COPY ./etc/squid/passwd /etc/squid
COPY ./etc/squid/squid.conf /etc/squid
EXPOSE 3128/tcp
WORKDIR /root
ENTRYPOINT service squid start && bash
Squid 是一个后台服务,所以我不得不添加“bash”命令来保持容器的正常运行。有没有更合适的方法来保持容器正常运行?
当我在本地运行容器时,它可以正常工作:
docker run -d --name docker_squid -p 3128:3128 --rm -t docker_squid bash
和
curl -x http://localhost:3128 -L https://www.example.com
但是,当我在谷歌云上构建和运行映像时,squid 进程似乎不断重启,因此它完全忽略了 bash 语句。有什么想法吗?
在哪些情况下更适合使用:
CMD service squid start && tail -F /var/log/squid/access.log
【问题讨论】:
标签: docker google-cloud-platform squid