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
да норм, правд чё докерить с одним гигом озу там хз
Sergey️
User
И ещё. Где почитать, как работает докер изнутри? Интересует именно как реализована контейнеризация
Andrey
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
bama^boy
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"'
Так заработало
Sergey️
ему прям важно название файла?
bama^boy
если задавать environment или env_file, он не видит переменную
Sergey️
Даже если явно указано в директиве?
Sergey️
Sergey️
Здрасьте
Sergey️
bama^boy
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
Переменные с одним $ подставляются на этапе формирования конфиге, до запуска контейнеров. Если нужно чтобы в контейнере была переменная - нужно $$
bama^boy
Konstantin
Но, то что генерация конфига не видит env_file - странно, первый раз вижу такое. Что за версия?
Konstantin
Я не ловил подобное, хотя юзаю разные варианты
Sergey️
Sergey️
Docker version 18.06.0-ce, build 0ffa825
Sergey️
Docker for Mac, у другана на линуксе та же тема
Konstantin
Дойду до компа проверю ваш конфиг
Konstantin
Konstantin
Не связанным, но всё же
Sergey️
Sergey️
:)
Konstantin
А, ну жди)
bama^boy
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/
bama^boy
Konstantin
и дебажить проще через docker-compose config, сразу видно что на выходе получается
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
Да