无法在 kubernetes pod 中启动 pritunl 容器

问题描述 投票:0回答:1

我创建了一个 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 kubernetes containers pritunl
1个回答
0
投票

你看过来自

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
中的错误并继续,而不是因错误而中止。

© www.soinside.com 2019 - 2024. All rights reserved.