Vitaly
Всем привет! При выгрузке файла с системы linux, точнее попытке его выгрузить, имя файла превращается в абракадабру. Образ в докере. Для jvm default задаётся. ENTRYPOINT ["java","-Dfile.encoding=UTF-8"
Roman
друзья, кто то может помочь разобраться? вот у меня на работе нужно локально запускать образы сайта и модулей отдельно через yarn cosmos. основная команда выглядит так: docker run --rm --name bla-bla -it -v c://путь-до-папки:/app -p 3100:3000 -p 5000:5000 node:16 bash а потом уже переходим в консоли в папку app по средствам cd app -> далее yarn install -> yarn start ... ту же самую аналогию надо проделать отдельно для космоса. что тут почитать фундаментального? или можно как то с этими параметрами запускать контрейнеры через интерфейс? Если в самом докере запускать контейнеры: тоизнутри ярн не ставится и образ в локал хост не монтируется почему то... пытаюсь понять какие материалы посмотреть чтобы разобраться досконально
Не выходи из комнаты.
Привет. Я же верно понимаю, что у контейнера будут рут права и это не секюрно? docker-compose.yaml chat: build: context: . command: python3 /app/fastapi_chat/run.py
Evgeniy
друзья, кто то может помочь разобраться? вот у меня на работе нужно локально запускать образы сайта и модулей отдельно через yarn cosmos. основная команда выглядит так: docker run --rm --name bla-bla -it -v c://путь-до-папки:/app -p 3100:3000 -p 5000:5000 node:16 bash а потом уже переходим в консоли в папку app по средствам cd app -> далее yarn install -> yarn start ... ту же самую аналогию надо проделать отдельно для космоса. что тут почитать фундаментального? или можно как то с этими параметрами запускать контрейнеры через интерфейс? Если в самом докере запускать контейнеры: тоизнутри ярн не ставится и образ в локал хост не монтируется почему то... пытаюсь понять какие материалы посмотреть чтобы разобраться досконально
напиши скрипт скопируй его в контейнер на этапе постороения образа его в /usr/bin/runner и выполняй скрипт, а уже в скрипте делай что там надо это называется entrypoint есть еще cmd и разные способы их написания
Sergey
Что вы скажете про podman стоит ли переходить с docker
Denis
Всем привет. Возможно вопрос не по теме чата, но всё таки связь с докером есть. Возникла следующая потребность - хочу сделать несколько реплик контейнеров (микросервисов) и каждому контейнеру присвоить уникальные связки логинов и паролей (или токенов, или еще каких то полезных данных) от другой системы, с которой эти контейнеры должны взаимодействовать. При помощи каких "штук" можно такое сделать?
Ofee
Что вы скажете про podman стоит ли переходить с docker
Для своих задач (билд плюсового кода, иногда правка исходников пакетов дистрибутива), он оказался значительно удобнее, чем docker – для rootless конфигурации не нужно качать сомнительные скрипты и бинарники, в отличие от Зато вдоволь навеселился, отлаживая крайне специфический баг недавно во вполне обычном приложении. Звёзды так сошлись, что в Qt Creator сохранение файлов перестало работать (и только в нём!) из-за кривизны где-то то ли в ядре, то ли в overlayfs К счастью, последнее решилось выкидыванием fusermount – как раз в моём ядре завезли нативную поддержку
Denis
environment
Но кто его должен задавать так, что бы у каждого контейнера было уникальные значения? Есть ли какой-то софт для такого? Может сам контейнер должен запросить откуда то эти параметры...
Evgeniy
это относится к запускающему, этого его дело как и откуда он будет брать параметры контейнер точно не должен никуда ходить и не запрашивать параметры
Evgeniy
в докере есть секреты
Eugene1111
Александр
Всем привет! Как запустить postgres не на дефолтном порте? Не на 5432?
Александр
И что означает порт, который мы указываем в файле Dockerfile в команде EXPOSE PORT ? Это будет порт который доступен только внутри докера между контейнерами?
Evgeniy
Всем привет! Как запустить postgres не на дефолтном порте? Не на 5432?
При запуске флаг -p <Порт на хосте>:<порт в контейнере>
Александр
спасибо 👌 🙂
Dan
30 выпуск "Котиков" с обзором интересных и важных событий прошедшей недели. https://vk.com/@-208220812-vypusk-30-18-noyabrya-2021 p.s. теперь на наш подкаст можно подписаться любым удобным способом: ▫️Apple 🍎 Podcast: https://podcasts.apple.com/us/podcast/котики-кодят/id1596057827 ▫️Spotify: https://open.spotify.com/show/17mD4XG1fXhUfRjoMDZR2H ▫️Яндекс.Музыка: https://music.yandex.ru/album/19243733 ▫️RSS Feed: https://vk.com/podcasts-208220812.rss ▫️ВКонтакте: https://vk.com/public208220812
EN
В сборке крутятся контейнеры php, nginx, mysql, nodejs, worker. Я делаю следующее: docker-compose pull docker-compose up -d --no-deps php docker-compose exec -T php php artisan optimize docker rmi $(docker images -q -f dangling=true) Демон пытается удалить образ mysql. В списке образов - два(почему их два?) образа для mysql - один без тэга который демон пытается удалить, второй - с тегом, который прописан в ямл файле. Откуда берется образ без тега, и почему контейнер стартует именно на нем?
EN
Надо конфиг смотреть. Судя по всему ошибка там
конфиг чего? вот сервис mysql из .yml файла: mysql: image: mysql:8.0.27 container_name: mysql restart: always volumes: - ./docker/mysql/data:/var/lib/mysql environment: MYSQL_DATABASE: ${DB_DATABASE} MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} MYSQL_PASSWORD: ${DB_PASSWORD} MYSQL_USER: ${DB_USERNAME} networks: - net
dimage
А полную версию
leejoys
Привет! Здесь скриншоты постить можно?
Dan
Привет! Здесь скриншоты постить можно?
С голыми женщинами если только :)
leejoys
Понято, принято)
leejoys
так норм?
Dan
Понято, принято)
Ладно, уже интрига! Давай показывай скриншот
leejoys
она точно голая, я проверил
leejoys
вопрос в том, почему когда там alpine:latest, она при запуске пишет not found, хотя файл видит
Dan
Не, ну так то красиво
Dan
Попробуй в предпоследнем copy указать / после server
Dan
Но это не точно
leejoys
а если заменить на debian:stretch, то запускается
Dan
А
Dan
Либ нет
Dan
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
Dan
Подожди
Dan
При билде надо указать что CGO_ENABLED=0
Dan
Или 1 :)
Dan
CGO_ENABLED=1 go build и так далее
leejoys
:)
leejoys
попробую, спасибо
Dan
А нет, таки 0
Dan
И вот ещё: go build -tags netgo -a -v
leejoys
это откуда?
leejoys
чтоб в контексте почитать
leejoys
мануал?
leejoys
ладно, ушел пробовать
leejoys
да, так работает. по ходу сборки подтянуло ещё всякое
leejoys
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -tags netgo -a -v ./cmd/server.go вот так
leejoys
спасибо!
leejoys
так норм?
а почему у меня не получается передать аргумент в мой энтрипоинт?
leejoys
например у меня сервер должен принимать ключ -i
leejoys
я пишу docker run -p 8080:8080 -it test -i но он его не видит
leejoys
вроде должно же работать
Evgeniy
ну начать с того что entrypoint и cmd задаются 2 путями (массивом и shell)
Evgeniy
когда ты задешь docker run image entrypoint это shell версия
Evgeniy
соответственно у этих двух способов задания есть свои особенности которые надо бы знать
Evgeniy
во вторых не плохо бы понимать чем отличается entrypoint от cmd
Evgeniy
в контексте что бы почитать помимо офицальной доки https://habr.com/ru/company/southbridge/blog/329138/
leejoys
ну я уже много гайдов просмотрел. команда заменяет команду, но добавляется к энтрипоинт
Evgeniy
или надо готовое решение ?
leejoys
нет, скорее я где-то что-то не так понял, и пытаюсь понять, что именно
Evgeniy
https://docs.docker.com/engine/reference/builder/#entrypoint вот офицальная дока
leejoys
команда заменяет команду, но добавляется к энтрипоинт, а заменить энтрипоинт можно —entrypoint
Evgeniy
от того как они задавались
Evgeniy
CMD The CMD instruction has three forms: CMD ["executable","param1","param2"] (exec form, this is the preferred form) CMD ["param1","param2"] (as default parameters to ENTRYPOINT) CMD command param1 param2 (shell form)
Evgeniy
https://docs.docker.com/engine/reference/builder/#cmd
Evgeniy
3 пердложение это как раз твой случай
leejoys
итого я пишу ENTRYPOINT ./server даю команду -i и должно получиться ./server -i но получается не так
leejoys
спасибо, почитаю ещё
Evgeniy
будет не так
Evgeniy
shell версия когда ты задаешь команду переопределяет entrypoint
Evgeniy
CMD command param1 param2 (shell form)
Evgeniy
тебе надо или задать entrypoint в exec форме
Evgeniy
обрати внимание на примеры в exntrypoint
Evgeniy
FROM ubuntu ENTRYPOINT ["top", "-b"] CMD ["-c"]
Evgeniy
docker exec -it test ps aux