@zlodiak

Как текст записать в файл?

Я пытаюсь на основе образа ubuntu:latest создать свой образ, в котором будет существовать файл /helloworld с именем текущего пользователя системы. Вот Dockerfile:
FROM ubuntu
COPY helloworld /helloworld
RUN echo $USER > /helloworld

После создания образа, я запускаю его как контейнер(надеюсь, в терминологии не путаю ничего) в интерактивном режиме:
docker run -t -i docktor888/hw /bin/bash

и планирую увидеть в этом файле имя пользователя:
ls && cat /helloworld

, но этот файл пуст.

Помогите пожалуйста поправить Dockerfile так чтобы в /helloworld содержалось имя текущего пользователя.

PS:
Конечно же перед началом билда я ручками создаю
touch /helloworld
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 1
gecube
@gecube
системный администратор, программист... все дела..
Вероятнее всего на этапе сборки попросту не определена переменная $USER.
Что еще хуже - можно при старте контейнера из образа переопределить пользователя и такой докер образ станет бессмысленным:

docker run -u <айди пользователя> <имя образа> whoami

решение? Написать docker-entrypoint.sh (указать его как entrypoint), который и будет создавать этот файл в процессе запуска контейнера.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы