diff --git a/squid/6.8/22.03-lts-sp3/Dockerfile b/squid/6.8/22.03-lts-sp3/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..0d196a89b1eb7bf75aa6ab78128f4421b414610a --- /dev/null +++ b/squid/6.8/22.03-lts-sp3/Dockerfile @@ -0,0 +1,31 @@ +ARG BASE=openeuler/openeuler:22.03-lts-sp3 +FROM ${BASE} + +ARG VERSION=6.8 +ARG SQUID_PREFIX=/usr/local/squid +RUN yum -y update && yum -y install wget gcc g++ make perl openssl && yum clean all && \ + wget -O squid.tar.bz2 http://www.squid-cache.org/Versions/v${VERSION%%.*}/squid-${VERSION}.tar.bz2 +RUN mkdir /squid && tar -jxvf squid.tar.bz2 -C /squid --strip-components 1 && \ + cd /squid && ./configure \ + --prefix=$SQUID_PREFIX \ + --enable-arp-acl \ + --enable-linux-netfilter \ + --enable-linux-tproxy \ + --enable-async-io=100 \ + --enable-poll \ + --enable-gnuregex && \ + make -j "$(nproc)" && make install && \ + rm -rf squid.tar.gz /squid && \ + ln -s $SQUID_PREFIX/sbin/* /usr/local/sbin/ && \ + useradd -M -s /sbin/nologin squid && \ + chown -R squid:squid $SQUID_PREFIX/var/ + +COPY entrypoint.sh /usr/local/bin/ +RUN sed -i '$a\cache_effective_user squid' $SQUID_PREFIX/etc/squid.conf && \ + sed -i '$a\cache_effective_group squid' $SQUID_PREFIX/etc/squid.conf && \ + sed -i '$a\visible_hostname 192.168.0.101' $SQUID_PREFIX/etc/squid.conf && \ + sed -i '$a\cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256' $SQUID_PREFIX/etc/squid.conf && \ + chmod 755 /usr/local/bin/entrypoint.sh + +ENTRYPOINT [ "entrypoint.sh" ] +EXPOSE 3128 diff --git a/squid/6.8/22.03-lts-sp3/entrypoint.sh b/squid/6.8/22.03-lts-sp3/entrypoint.sh new file mode 100644 index 0000000000000000000000000000000000000000..baf2cc58f286147f85a8e3831eaa87323ae67140 --- /dev/null +++ b/squid/6.8/22.03-lts-sp3/entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +# allow arguments to be passed to squid +if [[ ${1:0:1} = '-' ]]; then + EXTRA_ARGS="$@" + set -- +elif [[ ${1} == squid || ${1} == $(which squid) ]]; then + EXTRA_ARGS="${@:2}" + set -- +fi + +# default behaviour is to launch squid +if [[ -z ${1} ]]; then + if [[ ! -d ${SQUID_CACHE_DIR}/00 ]]; then + echo "Initializing cache..." + $(which squid) -N -f /usr/local/squid/etc/squid.conf -z + fi + echo "Starting squid..." + exec $(which squid) -f /usr/local/squid/etc/squid.conf -NYCd 1 ${EXTRA_ARGS} +else + exec "$@" +fi diff --git a/squid/README.md b/squid/README.md new file mode 100644 index 0000000000000000000000000000000000000000..730b32e81b0a37254d63928650f74412017584a8 --- /dev/null +++ b/squid/README.md @@ -0,0 +1,30 @@ +# squid + +# Quick reference + +- The official squid docker image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative) + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community) + +# Build reference + +1. Build images and push: +```shell +docker buildx build -t "openeuler/squid:$TAG" --platform linux/amd64,linux/arm64 . --push +``` + +We are using `buildx` in here to generate multi-arch images, see more in [Docker Buildx](https://docs.docker.com/buildx/working-with-buildx/) + +2. Run: +```shell +docker run -d --name squid -p 3128:3128 openeuler/squid:$TAG +``` + +# Supported tags and respective Dockerfile links + +- 6.8-oe2203sp3: squid v6.8, openEuler 22.03 LTS SP3 + +## Operating System +Linux/Unix, ARM64 or x86-64 architecture. diff --git a/squid/doc/image-info.yml b/squid/doc/image-info.yml new file mode 100644 index 0000000000000000000000000000000000000000..0a128b7b8199ed7a2f4d0676f4b145a457c3b93c --- /dev/null +++ b/squid/doc/image-info.yml @@ -0,0 +1,89 @@ +name: squid +category: cloud +description: Squid是支持HTTP、HTTPS、FTP等的Web缓存代理。它通过缓存和重用经常请求的网页来减少带宽并提高响应时间。Squid具有广泛的访问控制,是一个出色的服务器加速器。它可以在大多数可用操作系统上运行,包括 Windows,并根据GNU GPL获得许可。 +environment: " + 本应用以容器镜像的方式供用户使用,运行于预置docker的Linux环境。Docker的推荐安装方式如下: + ## apt安装 + ### 1.更新系统软件包依赖 + ``` + sudo spt update + sudo apt install ca-certificates curl gnupg lsb-release + ``` + ### 2.添加Docker官方GPG密钥 + ``` + sudo mkdir -p /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg + sudo chmod a+r /etc/apt/keyrings/docker.gpg + ``` + ### 3.添加Docker官方APT源 + ``` + echo \"deb [arch=$(dpkg --print-architecture) signed-by=/usr/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + ``` + ### 4.再次更新软件包索引 + ``` + sudo apt update + ``` + ### 5.安装Docker + ``` + sudo apt install docker-ce docker-ce-cli containerd.io + ``` + + ## yum安装 + ### 1.安装yum-utils + ``` + sudo yum install -y yum-utils + ``` + ### 2.添加Docker源 + ``` + sudo yum-config-manager \ + > --add-repo \ + > https://download.docker.com/linux/centos/docker-ce.repo + ``` + ### 3.安装Docker + ``` + sudo yum install -y docker-ce docker-ce-cli containerd.io + ``` + + 注意,在openEuler环境安装docker时,可执行如下命令一键安装 + ``` + yum install -y docker + ``` + + ## 脚本安装 + ### 1.下载安装脚本 + ``` + curl -fsSL https://get.docker.com -o get-docker.sh + ``` + ### 2.使用root权限执行脚本 + ``` + sudo sh get-docker.sh + ``` + 使用脚本安装方式时,如果用户要指定安装的docker版本,需要自行修改`get-docker.sh`的源码内容。 + + ## 验证 + ``` + sudo docker run hello-world + ``` + " +download: " + 获取容器镜像 + ``` + docker pull openeuler/squid:{TAG} + ``` + " +install: " + 启动容器 + ``` + docker run -d --name squid -p 3128:3128 openeuler/squid:{TAG} + ``` + 用户可根据自身需求,自定义启动选项。 + " +license: GPL-2.0 license +similar_packages: + - Privoxy: Privacy Enhancing Proxy是一个非缓存类Web代理软件,它自带的高级过滤功能可以用来增强隐私保护、修改页面内容和 HTTP 头部信息、访问控制,以及去除广告和其它招人反感的互联网垃圾。Privoxy的配置非常灵活,能充分定制已满足各种各样的需求和偏好。它支持单机和多用户网络两种模式。 + - Varnish Cache: 是一个为性能和灵活性而生的web加速器。它新颖的架构设计能带来显著的性能提升。根据你的架构,通常情况下它能加速响应速度300-1000倍。Varnish将页面存储到内存,这样web服务器就无需重复地创建相同的页面,只需要在页面发生变化后重新生成。页面内容直接从内存中访问,当然比其他方式更快。 + - Polipo: 开源的HTTP缓存代理,只需要非常低的资源开销。它监听来自浏览器的web页面请求,转发到web服务器,然后将服务器的响应转发到浏览器。在此过程中,它能优化和整形网络流量,其实现技术更接近于Squid。 + - Tinyproxy: 是一个轻量级的开源web代理守护进程,其设计目标是快而小。它适用于需要完整HTTP代理特性,但系统资源又不足以运行大型代理的场景,比如嵌入式部署。 +dependency: + - perl + - openssl \ No newline at end of file diff --git a/squid/doc/picture/logo.png b/squid/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8e1bfda949b88f0210b95d7273a4e63b677abd6f Binary files /dev/null and b/squid/doc/picture/logo.png differ diff --git a/squid/meta.yml b/squid/meta.yml new file mode 100644 index 0000000000000000000000000000000000000000..f97598a5cab560a91cc24a0891132a1f2390adf2 --- /dev/null +++ b/squid/meta.yml @@ -0,0 +1,2 @@ +6.8-oe2203sp3: + - squid/6.8/22.03-lts-sp3/Dockerfile \ No newline at end of file