最近尝试在spug3.3版本上作发布管理,根据官方不是很成文的案例,配置maven环境,踩了几个坑,现放出解决办法。

一、配置jdk和mvn

“`
docker cp apache-maven-3.9.6-bin.zip spug:/opt/
docker cp jdk-8u202-linux-x64.tar.gz spug:/opt/

docker exec -it spug /bin/bash
cd /opt/
unzip apache-maven-3.9.6-bin.zip
tar xf jdk-8u202-linux-x64.tar.gz
mv apache-maven-3.9.6 /usr/local/maven-3.9.6
mv jdk1.8.0_202 /usr/local/
“`

二是生成全局环境变量

“`
cat >/data/spug/env<<‘EOF’
export JAVA_HOME=/usr/local/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/maven-3.9.6/bin
echo -e ‘192.168.110.231 git.hnzlgkj.com’ >> /etc/hosts
EOF

### 确认文件内容
more /data/spug/env
“`

三、解决报“out of memoryAborted”错误

“`
mvn -v
library initialization failed – unable to allocate file descriptor table – out of memoryAborted (core dumped)

这种现象是docker容器安全控制造成的,在mvn命令使用之前先,ulimit -n 65535执行一下,可能临时解决。

永久解决:
在docker服务,启动时指定ulimit

### 如果是rpm包安装的,先查找docker.service文件所在路径
# systemctl status docker
● docker.service – Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
Drop-In: /etc/systemd/system/docker.service.d
└─docker.conf
Active: active (running) since Wed 2024-12-25 10:51:08 CST; 3s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 16352 (dockerd)
Tasks: 32
Memory: 42.5M
CPU: 500ms
CGroup: /system.slice/docker.service
├─16352 /usr/bin/dockerd –default-ulimit nofile=65535:65535 -H fd://
├─16571 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.18.0.2 -container-port 80
└─16576 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 80 -container-ip 172.18.0.2 -container-port 80

Dec 25 10:51:07 zlg-195 dockerd[16352]: time=”2024-12-25T10:51:07.913946633+08:00″ level=info msg=”Starting up”
Dec 25 10:51:07 zlg-195 dockerd[16352]: time=”2024-12-25T10:51:07.914598369+08:00″ level=info msg=”OTEL tracing is not configured, using no-op tracer provid>
Dec 25 10:51:07 zlg-195 dockerd[16352]: time=”2024-12-25T10:51:07.936629027+08:00″ level=info msg=”[graphdriver] using prior storage driver: overlay2″
Dec 25 10:51:07 zlg-195 dockerd[16352]: time=”2024-12-25T10:51:07.940200284+08:00″ level=info msg=”Loading containers: start.”

 

### 修改/usr/lib/systemd/system/docker.service文件,大约在13行的启动命令中,加ulimit相关参数,增加“–default-ulimit nofile=35000:35000”
vi /usr/lib/systemd/system/docker.service
。。。
ExecStart=/usr/bin/dockerd –default-ulimit nofile=35000:35000 -H fd:// –containerd=/run/containerd/containerd.sock
。。。

### 重启docker服务
systemctl daemon-reload
systemctl restart docker
“`

 

声明:欢迎大家光临本站,学习IT运维技术,转载本站内容,请注明内容出处”来源刘国华教育“。如若本站内容侵犯了原著者的合法权益,请联系我们进行处理。