Я хочу изменить переменную окружения контейнера докера с помощью устройства Vagrant Docker. Как я могу это сделать?Как использовать атрибут env поставщика Vagrant Docker?
Пример Vagrantfile:
config.vm.define 'container' do |ws|
ws.vm.hostname = 'container'
ws.ssh.port = 23
ws.ssh.guest_port = 23
ws.vm.provider "docker" do |d|
d.image = "name/image"
d.env = {
"SSH_PORT" => 23
}
d.vagrant_machine = "host"
d.vagrant_vagrantfile = "../Vagrantfile"
d.force_host_vm = true
d.has_ssh = true
end
end
Пример Dockerfile:
FROM centos:centos7
ENV PORT 22
#...
RUN echo "Port $PORT" >> /somefile.txt
#...
EXPOSE $PORT
Это всегда в конечном итоге с порта = 22 вместо 23. Возможный обходной путь с d.create_args = ["-e", "PORT=23"]
тоже не получилось.
Источники: Vagrant Docker Docker environment-vars
Это не может быть использована в Provisioner Докер. Его можно использовать только в [Поставщике докеров] (http://docs.vagrantup.com/v2/docker/index.html). Существует огромная разница между этими двумя. – czerasz