使用postgres和java构建docker
我想扩展docker()以添加java。 我尝试构建下一个dockerfile:使用postgres和java构建docker,docker,centos,Docker,Centos,我想扩展docker()以添加java。 我尝试构建下一个dockerfile: FROM centos/postgresql-96-centos7 RUN yum update -y && \ yum install -y wget && \ yum install -y java-1.8.0-openjdk && \ yum clean all # Set environment variables. ENV HOME /root # D
FROM centos/postgresql-96-centos7
RUN yum update -y && \
yum install -y wget && \
yum install -y java-1.8.0-openjdk && \
yum clean all
# Set environment variables.
ENV HOME /root
# Define working directory.
WORKDIR /root
# Define default command.
CMD ["bash"]
使用命令:
docker image build -t centos_pgs_java .
但有一个错误:
Step 3/6 : RUN yum update -y && yum install -y wget && yum install -y java-1.8.0-openjdk && yum clean all
---> Running in d93a94a61a11
Loaded plugins: fastestmirror, ovl
ovl: Error while doing RPMdb copy-up:
[Errno 13] Permission denied: '/var/lib/rpm/Group'
You need to be root to perform this command.
The command '/bin/sh -c yum update -y && yum install -y wget && yum install -y java-1.8.0-openjdk && yum clean all' returned a non-zero code: 1
如何使用root访问权限在dockerfile中重写RUN命令?根据文档:
用户指令设置用户名(或UID)和可选的
运行映像和任何运行时要使用的用户组(或GID),CMD
以及Dockerfile中的入口点说明
因此,您需要将用户更改为root
,执行运行层并将用户返回到centos/postgresql-96-centos7
docker image中定义的26
最后的Dockerfile
是:
FROM centos/postgresql-96-centos7
USER root
RUN yum update -y && \
yum install -y wget && \
yum install -y java-1.8.0-openjdk && \
yum clean all
USER 26
# Set environment variables.
ENV HOME /root
# Define working directory.
WORKDIR /root
# Define default command.
CMD ["bash"]
…为什么在数据库容器中需要JVM?感谢您的回复。映像构建成功,但有一个警告:您得到的警告是什么?它似乎被一些格式问题所隐藏。