我创建了一个 pritunl docker 容器,并尝试从本地计算机运行,似乎工作正常。但是,我将图像推送到 amazon ECR 并部署到 kubernetes 中,但我收到以下错误。
Pod 状态:
Back-off restarting failed container
Pod 日志:
/bin/start-pritunl: 28: /usr/bin/pritunl: not found
**
Dockerfile:**
FROM ubuntu:22.04
ENV PRITUNL_VERSION=1.32.3805.95
COPY --chown=root:root ["docker-install.sh", "/root"]
RUN bash /root/docker-install.sh
ADD start-pritunl /bin/start-pritunl
EXPOSE 80
EXPOSE 443
EXPOSE 1194
EXPOSE 1194/udp
ENTRYPOINT ["/bin/start-pritunl"]
CMD ["/usr/bin/tail", "-f","/var/log/pritunl.log"]
docker-install.sh 文件:
set -ex
apt-get update -q
apt-get install -y gnupg wget
echo 'deb http://repo.pritunl.com/stable/apt bionic main' > /etc/apt/sources.list.d/pritunl.list
echo "deb http://build.openvpn.net/debian/openvpn/stable bionic main" > /etc/apt/sources.list.d/openvpn-aptrepo.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292A
apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 8E6DA8B4E158C569
apt-get update -q
apt-get install -y locales iptables wget
locale-gen en_US en_US.UTF-8
dpkg-reconfigure locales
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
apt-get upgrade -y -q
apt-get dist-upgrade -y -q
wget --quiet https://github.com/pritunl/pritunl/releases/download/${PRITUNL_VERSION}/pritunl_${PRITUNL_VERSION}-0ubuntu1.jammy_amd64.deb
dpkg -i pritunl_${PRITUNL_VERSION}-0ubuntu1.jammy_amd64.deb || apt-get -f -y install
rm pritunl_${PRITUNL_VERSION}-0ubuntu1.jammy_amd64.deb
wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
apt-get --purge autoremove -y wget
apt-get clean
apt-get -y -q autoclean
apt-get -y -q autoremove
rm -rf /tmp/*
启动pritunl文件:
#!/bin/sh
set -e
[ -d /dev/net ] ||
mkdir -p /dev/net
[ -c /dev/net/tun ] ||
mknod /dev/net/tun c 10 200
touch /var/log/pritunl.log
touch /var/run/pritunl.pid
/bin/rm /var/run/pritunl.pid
if [ "$1" = "bash" ]; then
exec "$@"
exit $?
fi
# allow changing debug mode
if [ -z "$PRITUNL_DEBUG" ]; then
PRITUNL_DEBUG="false"
fi
# allow changing bind addr
if [ -z "$PRITUNL_BIND_ADDR" ]; then
PRITUNL_BIND_ADDR="0.0.0.0"
fi
/usr/bin/pritunl set-mongodb ${MONGODB_URI}
/usr/bin/pritunl set app.reverse_proxy ${REVERSE_PROXY}
/usr/bin/pritunl set app.redirect_server ${REDIRECT_SERVER}
/usr/bin/pritunl set app.server_ssl ${SERVER_SSL}
/usr/bin/pritunl set app.server_port ${SERVER_PORT}
/usr/bin/pritunl set local.public_ip ${PUBLIC_IP}
/usr/bin/pritunl start
因为我有一种感觉,这可能是因为 ubuntu 基础镜像版本 22.04,所以我将其更改为 20.04,但仍然是同样的问题。 是因为权限问题吗?
你看过来自
docker build
的日志吗?如果你安装了,你会发现 pritunl
永远不会被安装:
+ dpkg -i pritunl_1.32.3805.95-0ubuntu1.jammy_amd64.deb
Selecting previously unselected package pritunl.
(Reading database ... 6103 files and directories currently installed.)
Preparing to unpack pritunl_1.32.3805.95-0ubuntu1.jammy_amd64.deb ...
Unpacking pritunl (1.32.3805.95-0ubuntu1~jammy) ...
dpkg: dependency problems prevent configuration of pritunl:
pritunl depends on pritunl-ndppd; however:
Package pritunl-ndppd is not installed.
pritunl depends on python3; however:
Package python3 is not installed.
pritunl depends on python3-distutils; however:
Package python3-distutils is not installed.
pritunl depends on net-tools; however:
Package net-tools is not installed.
pritunl depends on openvpn; however:
Package openvpn is not installed.
pritunl depends on ipset; however:
Package ipset is not installed.
pritunl depends on psmisc; however:
Package psmisc is not installed.
dpkg: error processing package pritunl (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
pritunl
不幸的是,您的安装脚本会忽略
dpkg
中的错误并继续,而不是因错误而中止。