У меня есть контейнер docker, который построен на 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-ui
sudoers.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: ALL
точка входа. 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
В 6-я и 7-я строки файла entrypoint.sh
, я получил /entrypoint.sh: line 6: /etc/environment: Permission denied
, хотя я использовал sudo
. Что здесь может быть не так?