George
ну, не ужас-ужас
Andrey
не пробовал
Andrey
сейчас смотрю, что можно выкинуть через dockerignore
Ильдар
быстрее же убедиться что пустой Dockerfile с пустым контекстом собирается мгновенно или тоже зависает.
Andrey
ещё docker-compose.yaml надо написать. Напихать в докеригнор массивные файлы и попробовать перезапустить билд быстрее будет
Andrey
не сработает - тогда уже буду пустой hello-world пробовать
Andrey
dockerignore помог! 😊
Andrey
хотя теперб он сборкой дольше занимается, там node_modules локальные ещё были ..
Роман
Коллеги, а как в alpine команда touch работает? Пытаюсь сделать:
touch -d "10 minutes ago" test.file
Но он говорит:
touch: invalid date '10 minutes ago'
В Убунту работает.
George
touch -h или man touch
George
скорее всего оно не поддерживает расширенный синтаксис, ибо бизибокс
Роман
Andrey
https://unix.stackexchange.com/questions/22600/how-to-get-3-minutes-future-date
George
/ # touch --help
BusyBox v1.29.3 (2019-01-24 07:45:07 UTC) multi-call binary.
Usage: touch [-c] [-d DATE] [-t DATE] [-r FILE] FILE...
Update the last-modified date on the given FILE[s]
-c Don't create files
-h Don't follow links
-d DT Date/time to use
-t DT Date/time to use
-r FILE Use FILE's date/time
George
дату оно юзает. Только формат скорее всего не "10 minutes ago", а точная дата.
Роман
Оно ведёт себя странно:
touch -d "00000000" test.file
Дата изменения:
Nov 30 00:00 test.file
Andrey
date +%s выдаёт время в секундах, отнимаем нужное кол-во секунд, передаём с префиксом @ чтобы парсер понял, что это epoch
Роман
Andrey
ну а вообще, я б alpine выкинул за такие выкрутасы 😊
Роман
Я подумаю над этим).
DimaS
Всем привет, подскажите пожалуйста!
У меня есть 2 проэкта один на докере второй на локальной машине , с проэкта на докере делаю запрос на проэк на локалке, получаю такую ошибку
Error:Could not resolve host
как правильно сконфигурить докер чтобы можно было делать запросы с контейнера на любой проэкт на локалке?
Bogdan
DimaS
network: host
я пробовал прописывать
network_mode: host в docker-compose
у меня просто сайт не пашет
http://joxi.ru/E2pEM35f7v6NbA
DimaS
@evstrat спасио вам за ответ, оставил только хост без порта и все заработало!
Trouble
Всем ола)
Trouble
А кто-нибудь пробовал внутри docker gui организовать?
George
зачем? ну, х11 приложухи запускаются
toobinks
Господа, поможите советом
toobinks
в docker-compose прописываю сервис
toobinks
postgres:
restart: always
build:
context: .
dockerfile: docker/postgres/Dockerfile
environment:
PGPORT: "5433"
ports:
- "127.0.0.1:5433:5433"
volumes:
- ./postgres-data/data:/var/lib/postgresql/data
toobinks
в postgres-data база на 50 гб и docker-compose build пытается эту базу заархивировать
toobinks
Traceback (most recent call last):
File "/usr/lib/python3.7/site-packages/docker/utils/build.py", line 97, in create_archive
t.addfile(i, f)
File "/usr/lib64/python3.7/tarfile.py", line 1972, in addfile
copyfileobj(fileobj, self.fileobj, tarinfo.size, bufsize=bufsize)
File "/usr/lib64/python3.7/tarfile.py", line 250, in copyfileobj
dst.write(buf)
File "/usr/lib64/python3.7/tempfile.py", line 481, in func_wrapper
return func(*args, **kwargs)
OSError: [Errno 28] No space left on device
George
зачем? ничего он не пытается с ней
toobinks
как этого избежать?
George
он не пытается ее архивировать - я повторюсь
George
по факту - у Вас места для docker build образа не хватает
George
из docker/postgres/Dockerfile
George
докер демон ведь как работает - он передает весь текущий каталог
George
если в текущем каталоге есть лишние файлы - напишите .dockerignore
toobinks
OSError: Can not read file in context: /mnt/500gb/projects/docker/flask_webapp_docker/postgres-data/data/base/116218/1663373.1
George
в который внесите те каталоги, которые не нужны для сборки проекта
George
https://t.me/docker_ru/123048 - вот это
toobinks
текущий каталог там, где находится Dockerfile или docker-compose?
George
текущий каталог - это там где контекст
toobinks
FROM postgres:9.5
RUN localedef -i ru_RU -c -f UTF-8 -A /usr/share/locale/locale.alias ru_RU.UTF-8
ENV LANG ru_RU.UTF-8
toobinks
сам docker/postgres/Dockerfile вот такой
George
у вас контекст в докер-компоузе указан как "."
George
toobinks
ааа, понял
toobinks
а в "." как раз и лежит postgres-data
George
ну, если у вас в Dockerfile не добавляются файлы, то можете попросту context: ./docker/postgres
George
сделать
George
George
я бы вообще postgres-data в вольюм выкинул
George
т.е. вот так :
volumes:
- postgres-data:/var/lib/postgresql/data
George
главное потом случайно docker-compose down -v не сделать
George
😊
toobinks
так оно сейчас так
toobinks
postgres:
restart: always
build:
context: .
dockerfile: docker/postgres/Dockerfile
environment:
PGPORT: "5433"
ports:
- "127.0.0.1:5433:5433"
volumes:
- ./postgres-data/data:/var/lib/postgresql/data
toobinks
я так понимаю, на context просто двинуть в ./docker/postgres
George
как вариант
toobinks
не прокатило с контекстом, пришлось сделать так
toobinks
build: ./docker/postgres
George
не м.б., что с контекстом не прокатило...
George
его ж не просто создать надо, а еще заполнить (файл т.е.)
toobinks
?
VolanDeVovan
George
VolanDeVovan
Не тебе
Переслал не то
George
?
ну, формат .dockerignore такой же как у .gitignore, если мне память не изменяет
toobinks
т.е. в данном случае указывать контекст это более предпочтительно, чем его не указывать?
George
пофиг
George
есть 100500 способов решения проблемы. Гарантированно верного нет. Я бы тупо не собирал образы через компоуз. Не более того
toobinks
а как их собирать?
toobinks
к примеру вот тут указана структура каталогов https://www.haikson.com/programmirovanie/python/django-nginx-gunicorn-postgresql-docker/
toobinks
если не пользоваться compose, то чем пользоваться?
VolanDeVovan
Вручную писать команды
VolanDeVovan
Ты тоже самое можешь сделать сам создавая сетевые интерфейсы / тома запуская контейнеры и удалять после