Я просмотрел онлайн и попробовал очевидный маршрут (объясненный ниже), чтобы удалить переменную окружения из образа докера.
1 - я создаю контейнер из модифицированного образа Ubuntu, используя:
docker run -it --name my_container my_image
2 - я проверяю изображение и вижу две переменные окружения, которые я хочу удалить, используя:
docker inspect my_container
что дает:
...
"Env": [
"env_variable_1=abcdef",
"env_variable_2=ghijkl",
"env_variable_3=mnopqr",
...
3 - я выполняю exec в контейнер и удаляю переменные окружения с помощью:
docker exec -it my_container bash
unset env_variable_1
unset env_variable_2
4 - Я проверяю, чтобы указанные переменные исчезли:
docker inspect my_container
что дает:
...
"Env": [
"env_variable_3=mnopqr",
...
5 - я затем фиксирую этот измененный контейнер как изображение через:
docker commit my_container my_new_image
6 - и проверить наличие удаленных переменных среды с помощью:
docker run -it --name my_new_container my_new_image
docker inspect my_new_container
что дает (барабанная дробь, пожалуйста):
...
"Env": [
"env_variable_1=abcdef",
"env_variable_2=ghijkl",
"env_variable_3=mnopqr",
...
AKA удаленные переменные не переносятся из измененного контейнера в новое изображение в docker commit
Что мне здесь не хватает? unset
действительно удаляет переменные? Должен ли я использовать другой метод для удаления этих переменных среды или другой / измененный метод для фиксации контейнера как изображения?
PS: я подтвердил, что переменные вначале существуют, когда внутри контейнера через env
. Затем я подтвердил, что они не были активны, используя тот же метод после использования unset my_variable
Спасибо за вашу помощь!