Alex
ну ты можешь в докерфайле VOLUME указать и в него установить то что нужно
Alex
потом когда делаешь run у тебя сделается волью который можно посмотреть в docker volume list
Vladimir
я сделал только что так. сделал VOLUME в докерфайле, сделал билд. файлы туда установились. затем пошел в /var/lib/docker/volumes нашел свои волюмы, копирнул оттуда файлы куда мне нужно и примаунтил уже docker-compose из нужных мне мест ну и docker run само собой
Vladimir
просто думал можно в докерфайле сразу указать место на хостмашине куда оно будет мапиться
Alex
нельзя вроде
Alex
volume [/asd] это тоже самое что -v /asd при докер ран
Alex
ну то есть он неименованный никак
Vladimir
это да
User
Кстати, коллеги, под raspberry pi имеет смысл юзать докер? Или дофига оверхеда?
artb1sh
да норм, правд чё докерить с одним гигом озу там хз
User
И ещё. Где почитать, как работает докер изнутри? Интересует именно как реализована контейнеризация
User
Спасибо
Victor
Докер образ имеет уровни, точнее до 127. Когда докер-образ публикуется в реестре, остаются ли уровни?
Gleb
Остаются
Gleb
при пулле-пуще увидишь
Gleb
с идентификаторами даже
Victor
Остаются
А слои какк-то удалять в образе можно?
Gleb
А слои какк-то удалять в образе можно?
в регистри апикша поддерживает по идее чет вроде curl -X DELETE http://ip_address:5000/v2/<name>/blobs/<digest> ток надо в самом регистри какой-то опцией это разрешить - оно по дефолту выключено
Sergey️
Может кто подсказать, почему environment не подхватывается? https://github.com/Kylmakalle/mobi-assistant-bot/blob/docker/docker-compose.yml#L44
Sergey️
Sergey️
В env_file явно указано SERVEO_SUB_DOMAIN=blablabla
Sergey️
везде аперкейс
Sergey️
сделал printenv serveo_1 | SERVEO_SUB_DOMAIN=blabla
Sergey️
То есть env передается, а команда не жрёт правильно
bama^boy
То есть env передается, а команда не жрёт правильно
https://github.com/Kylmakalle/mobi-assistant-bot/blob/docker/docker-compose.yml#L44 а почему там $$? Вместо $? You can use a $$ (double-dollar sign) when your configuration needs a literal dollar sign. This also prevents Compose from interpolating a value, so a $$ allows you to refer to environment variables that you don’t want processed by Compose. https://docs.docker.com/compose/compose-file/#variable-substitution
Sergey️
когда один доллар, мне пишет что variable нет
Sergey️
WARNING: The SERVEO_SUB_DOMAIN variable is not set. Defaulting to a blank string.
Sergey️
Короче, докер, еб твою
Sergey️
'sh -c "ssh -R $${SERVEO_SUB_DOMAIN}:80:nginx:80 -o \"StrictHostKeyChecking no\" serveo.net"' Так заработало
bama^boy
Короче, докер, еб твою
я тестил и только с .env он работает
Sergey️
ему прям важно название файла?
bama^boy
если задавать environment или env_file, он не видит переменную
Sergey️
Даже если явно указано в директиве?
Sergey️
Здрасьте
Konstantin
Короче, докер, еб твою
Года идут, ничего тут не меняется)))
Sergey️
bama^boy
Так переменная в env_file и лежит
да, все равно не подхватывает)
Konstantin
если задавать environment или env_file, он не видит переменную
Что-то неправильное, нет разницы где задавать, там только приоритет переопределения есть
bama^boy
cat docker-compose.yml version: '3' services: serveo: image: debian:jessie tty: true stdin_open: true env_file: - ./env_file environment: SERVEO_SUB_DOMAIN: foo command: "echo $SERVEO_SUB_DOMAIN" Запускаем docker-compose up WARNING: The SERVEO_SUB_DOMAIN variable is not set. Defaulting to a blank string. Recreating tmp_serveo_1 ... done Attaching to tmp_serveo_1 serveo_1 | tmp_serveo_1 exited with code 0
bama^boy
└─$ cat env_file SERVEO_SUB_DOMAIN=test
Sergey️
Sergey️
Вот так работает
bama^boy
└─$ mv env .env └─$ docker-compose up Recreating tmp_serveo_1 ... done Attaching to tmp_serveo_1 serveo_1 | bar tmp_serveo_1 exited with code 0 └─$ cat .env SERVEO_SUB_DOMAIN=bar └─$ docker-compose --version docker-compose version 1.20.0, build ca8d3c6
Sergey️
А ВОТ ТАК НЕ РАБОТАЕТ
Sergey️
ДОКЕР ЕБ ТВОЮ!!!
Sergey️
Всем спасибо за помощь
Tigran
открывай issue
Sergey️
Да, открою через пару часиков)
Konstantin
Переменные с одним $ подставляются на этапе формирования конфиге, до запуска контейнеров. Если нужно чтобы в контейнере была переменная - нужно $$
Konstantin
Но, то что генерация конфига не видит env_file - странно, первый раз вижу такое. Что за версия?
Konstantin
Я не ловил подобное, хотя юзаю разные варианты
Sergey️
Docker version 18.06.0-ce, build 0ffa825
Sergey️
Docker for Mac, у другана на линуксе та же тема
Konstantin
Дойду до компа проверю ваш конфиг
Konstantin
Docker version 18.06.0-ce, build 0ffa825
Обнови докер, этот релиз с багом
Konstantin
Не связанным, но всё же
Sergey️
Sergey️
:)
Konstantin
А, ну жди)
Konstantin
Нативный уже неделю как обновили
Konstantin
@bamaboy @Kylmakalle собственно я упустил этот момент, потому что по большей часте в CI живу и там почти всё через export . .env и переменные самой сессии используется на этапе формирования конфига, а env_file и environments уже непосредственно в контейнере только
Konstantin
и да, в доках этого нет(
Konstantin
https://staxmanade.com/2016/05/how-to-get-environment-variables-passed-through-docker-compose-to-the-containers/
Konstantin
и дебажить проще через docker-compose config, сразу видно что на выходе получается
bama^boy
и дебажить проще через docker-compose config, сразу видно что на выходе получается
забавно, что с $$ контейнер не видит переменную из env_file, а просто строку переменной
Konstantin
разве? наоборот же
bama^boy
└─$ docker-compose config services: serveo: command: echo $${SERVEO_SUB_DOMAIN} environment: SERVEO_SUB_DOMAIN: foo image: debian:jessie stdin_open: true tty: true version: '3.0' └─$ docker-compose up Creating network "tmp_default" with the default driver Creating tmp_serveo_1 ... done Attaching to tmp_serveo_1 serveo_1 | ${SERVEO_SUB_DOMAIN} tmp_serveo_1 exited with code 0
Konstantin
command: bash -c "echo $${SERVEO_SUB_DOMAIN}"
bama^boy
это я туплю, если завернуть в bash, то работает
bama^boy
хотя просто echo $$VAR тоже, по-идее, должно работать
Fantasy
Возможно оч нубский вопрос, но очень интересно, если используешь в компоузе 3 разных имейджа с 3мя разными операционными системами в качестве parent-а, реально будут крутиться на машине все эти операционки?
Konstantin
Да