我有一个码头容器是建立在ubuntu:bionic上。在这个容器中,我想安装java并设置PATH和JAVA_HOME变量。下面是我是如何做到的:
Dockerfile
FROM ubuntu:bionic
USER root
RUN adduser --disabled-password kafka-ui
RUN apt-get update && apt-get install -y sudo git apt-utils
ADD /sudoers.txt /etc/sudoers
RUN chmod 440 /etc/sudoers
COPY entrypoint.sh /entrypoint.sh
RUN chmod 755 /entrypoint.sh
ENTRYPOINT [ "/entrypoint.sh" ]
USER kafka-uisudoers.txt
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root ALL=(ALL) NOPASSWD: ALL
%sudo ALL=(ALL:ALL) ALL
kafka-ui ALL=(ALL) NOPASSWD: ALLentrypoint.sh
#!/bin/bash
sudo apt-get upgrade -y
sudo apt-get update && sudo apt-get install -y openjdk-11-jdk git
sudo echo "JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/" >> /etc/environment
sudo echo "PATH=$PATH:$JAVA_HOME/bin" >> /etc/environment
source /etc/environment在entrypoint.sh文件的第6行和第7行,我得到了/entrypoint.sh: line 6: /etc/environment: Permission denied,尽管我使用的是sudo。这里会有什么问题呢?
发布于 2020-04-15 17:56:23
为什么你不在Dockerfile中安装java?我的意思是这样做会在你每次启动容器的时候安装Java,你想这样吗?
如果这不是必需的,您可以在Dockerfile中安装java,然后使用
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
ENV PATH="$JAVA_HOME/bin:${PATH}"如果这是不可接受的,请尝试通过猛击容器来“调试”,并手动执行这些命令
https://stackoverflow.com/questions/61224639
复制相似问题