dockerfile指定jvm参数
实例
FROM java:8
VOLUME /tmp
ADD app.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 9001
ENV JAVA_OPTS="\
-server \
-Xmx4g \
-Xms4g \
-Xmn2g \
-XX:SurvivorRatio=8 \
-XX:MetaspaceSize=256m \
-XX:MaxMetaspaceSize=512m \
-XX:+UseParallelGC \
-XX:ParallelGCThreads=4 \
-XX:+UseParallelOldGC \
-XX:+UseAdaptiveSizePolicy \
-XX:+PrintGCDetails \
-XX:+PrintTenuringDistribution \
-XX:+PrintGCTimeStamps \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/ \
-Xloggc:/gc.log \
-XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=5 \
-XX:GCLogFileSize=10M"
ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.jar
不过这种方式在dockerfile写死了不灵活,不是很推荐,特别是要区分env的应用来说。
docker run指定
docker run --rm -e JAVA_OPTS='-Xmx1g' tomcat
docker-compose方式指定
environment:
- JVM_OPTS=-Xmx12g -Xms12g -XX:MaxPermSize=1024m
k8s指定
apiVersion: v1
kind: ReplicationController
metadata:
labels:
app: jenkins
role: master
version: v1
name: jenkins-master
namespace: jenkins
spec:
replicas: 1
selector:
app: jenkins
role: master
version: v1
template:
metadata:
labels:
app: jenkins
role: master
version: v1
spec:
containers:
- env:
- name: JENKINS_OPTS
value: --prefix=
- name: JAVA_OPTS
value: -Djava.awt.headless=true -Xmx200m -Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
image: jenkins:2.7.2
name: jenkins
ports:
- containerPort: 8080
name: web
- containerPort: 50000
name: leader
resources:
limits:
cpu: 1000m
memory: 800Mi
requests:
cpu: 100m
memory: 400Mi
volumeMounts:
- mountPath: /var/jenkins_home
name: jenkins-master
nodeSelector:
worker: "true"
volumes:
- name: jenkins-master
nfs:
path: /data/jenkins-master
server: '{{nfs_server}}'
doc
code-craft
spring boot , docker and so on 欢迎关注微信公众号: geek_luandun
推荐阅读
2022年终总结
最近两年开始陷入颓废中,博客也写的越来越少了。究其原因,主要还是陷入了职业倦怠期,最近一次跳槽感觉颇为失败,但是碍于给的薪资高,为了五斗米折腰,又加上最近行情不好,想要往外跳也跳不了,就这样子一直...
codecraft阅读 706
使用 docker 构建镜像文件
使用 docker 构建镜像文件,实现一次构建处处使用,从而减少开发难度。本文使用 web静态文件 与 vue开发文件 为例,使用 Dockerfile 构建docker镜像。@[toc]
qiaoyu阅读 708
制作 Python Docker 镜像的最佳实践
这篇文章是关于制作 Python Docker 容器镜像的最佳实践。(2022 年 12 月更新)最佳实践的目的一方面是为了减小镜像体积,提升 DevOps 效率,另一方面是为了提高安全性。希望对各位有所帮助。
东风微鸣云原生阅读 660
为什么我们提供了新的公共镜像库
众所周知,建木在项目初期就已经完成了“自举”,就是使用建木完成自身的全部CI/CD/CO等自动化流程。另外,由于建木本身和官方支持的节点都是打包为镜像发布到Docker Hub上,结果最近半年我们频繁碰到如下场景。
建木社区助手阅读 431
容器安全——docker 使用普通用户运行程序
先贴出我的 Dockerfile {代码...} 关键在于最后两行先来看看倒数第二行:groupadd -r ponponon 创建用户组 ponpononuseradd -r -g ponponon ponponon 创建用户 ponponon,并添加到 ponponon 组中最后一行就是指定...
ponponon阅读 430
使用Dockerfile部署项目
使用Dockerfile部署项目以Nginx部署项目为例Docker安装及Docker私有仓库部署流程Harbor在arm架构下亲测编译成功Linux安装Harbor亲测成功功制作基础镜像以私有仓库192.168.1.182:5000/centos为基础镜像,构建一个n...
阿亮说技术阅读 378
如何使用 Dockerfile 构建 Docker 镜像 ?
在 docker hub 有成千上万的 docker 镜像,我们可以轻松的使用这些镜像构建容器。但在某些情况和用例中,我们希望在 docker 镜像中进行一些配置或更改,而这些更改应该在我们运行容器时出现。这可以通过使用 Dock...
鸠摩智首席音效师阅读 267
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。