Dan
Это тулзы полезные
Alex
и да я же код сюда не выкладываю а имя это не важно ладно напишу скрапи фейсбук) - так будет легче?)
Dan
Да хрен с ним, с авито :) это ж я так
Dan
из серии «Разрешите прикопаться»
Dan
Alex
больше не буду) да уже привык к настолько токсичным сообществам что уже подумал блин и тут прикопались(
Tadeusz
всякие mysqldump не в счёт )
cronjob'ы никто не отменял :)
Dan
Должен сказать что тут токсичности почти нет. Здесь вообще весьма атмосферно и достаточно профессионально.
Dan
Так исторически сложилось
Tadeusz
от заливает, а... 😃
Dan
Kram давай ещё раз, бот злой режет ссылки и картинки :)
Alex
от заливает, а... 😃
ага) сам бан предлагал пару минут назад))
Mark
Всем привет, у меня есть проблема с WORKDIR командой, все вроде очень просто но не могу понять... такая структура папок: root | backend | AspNetCore | AspNetCore.Api .csproj файл тут | Команду docker build запускаю из рута, докерфайл лежит в руте Sending build context to Docker daemon 9.418MB Step 1/11 : FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env ---> 006ded9ddf29 Step 2/11 : WORKDIR /backend/AspNetCore/AspNetCore.Api ---> Running in 73d8d8813fd1 Removing intermediate container 73d8d8813fd1 ---> 2ec10fca5490 Step 3/11 : RUN pwd ---> Running in e8280a9bfe23 /backend/AspNetCore/AspNetCore.Api Removing intermediate container e8280a9bfe23 ---> cdbfde57e029 Step 4/11 : COPY Api.csproj ./ COPY failed: stat /var/lib/docker/tmp/docker-builder851976733/Api.csproj: no such file or directory Почему не может найти файл и почему вообще в другой директории и как пофиксить?
Dan
Путь до Api.csproj надо указать полный
Dan
В 4 шаге
Mark
а я же WORKDIR поставил, или надо все равно продублировать этот путь ?
Dan
WORKDIR — устанавливает рабочую директорию для инструкции CMD и ENTRYPOINT;
Mark
аа
Mark
блин
Mark
а я это пропустил
Mark
сори, спасибо
Dan
👌
Mark
@hitmaker The WORKDIR command is used to define the working directory of a Docker container at any given time. The command is specified in the Dockerfile. Any RUN, CMD, ADD, COPY, or ENTRYPOINT command will be executed in the specified working directory.
Mark
я вот такое начитался
Mark
но видимо это неправда
George
Почему? Вполне правда
Mark
ну у меня ж как раз копи не работал с ним
George
так это внутри докера, а не снаружи, е-мае
Tadeusz
Mark
что значит снаружи ? я перед тем как выполнить copy команду выполнил workdir и оно ничего не находило
Dan
🤔
George
ты явно не понимаешь что такое контекст докера, почему он копируется в /var/lib/docker/tmp
Dan
Для copy нужно указывать всегда путь относительно докерфайла
Dan
А лучше полный путь
Dan
Workdir это директива, указываяющая рабочую директорию внутри контейнера
Dan
Ну да
Dan
В контексте
George
а контекст != не всегда то, где лежит докерфайл
George
полная команда
George
docker build -f <путь_к_докерфайлу> -t <полный тег образа > <контекст - что будет в докер засовывать, обычно указывают ".">
Roman
Формально да, но есть нюанс: они явно не хотели бы чтобы их скрапили :)
а они не против чтобы гугл их скрапил? или если полезный, то ок? вопрос, что потом с этим контентом происходит
Dan
а они не против чтобы гугл их скрапил? или если полезный, то ок? вопрос, что потом с этим контентом происходит
Сильно сомневаюсь что здесь уместно приводить такие сравнения в качестве примера
Roman
но я к тому, что защищаться от скраппинга - это так себе идея
Alex
всем привет) я запустил контейнер docker exec -d 5915eca493a7 scrapy crawl facebook все запустилось и работает, если я зайду в контейнер я увижу работу scrapy в фоне а можно вытащить этот процес foreground так сказать
Andrey
Alex
Фигню сморозил?)
Dmitrii
флаг -i
Dmitrii
например
Alex
например
Спасибо!
Anonymous
Привет
Anonymous
Кто-нибудь знает как сделать так, чтобы cli запускался только при вызове docker-compose run cli?
Anonymous
я ступил два раза все запустил
Anonymous
cli: image: botnet:latest env_file: - ".env" # command: ["/bin/sh", "-c", "botnet-cli"] volumes: - ./botnet_history.txt:/root/.botnet_history:rw не. ошибка есть. это в общем CLI, написанный на Python, он ожидает пользовательского ввода, если расскоментировать command, то будет это: cli_1 | → *** Unknown syntax: EOF cli_1 | → *** Unknown syntax: EOF cli_1 | → *** Unknown syntax: EOF cli_1 | → *** Unknown syntax: EOF cli_1 | → *** Unknown syntax: EOF cli_1 | → *** Unknown syntax: EOF
Anonymous
скрипт тот рабочий
Anonymous
нельзя как-то отложенный запуск корманды сделать только при вызове run?
Anonymous
я не знаю как точнее выразиться и нагуглить не могу
Anonymous
а что нужно сделать чтобы у маунта user:group были <текущий>:users
Anonymous
sudo chown -R ${USER}:users ./data/postgres
Anonymous
я так сейчас меняю, но это же неправильно
George
это так не сработает скорее всего
George
покажи как запускаешь докер
Anonymous
db: image: postgres restart: always env_file: - ".env" volumes: - ./data/postgres:/var/lib/postgresql/data/ ports: - "5432:5432"
George
используй полный синтаксис mount
Anonymous
это образ права меняет
George
не вот эту срань с volumes
George
это образ права меняет
меняет, есть такое - тогда только переопределять пользователя и группу, под которым образ работает
George
https://github.com/docker-library/postgres/blob/master/13/docker-entrypoint.sh#L57
George
вот здесь
George
и в конечном счете запускает постгрес от непривилегированного юзера https://github.com/docker-library/postgres/blob/master/13/docker-entrypoint.sh#L281
Anonymous
а для решения вчерашней задачи две строки нужны были: cli: tty: true stdin_open: true
Владимир
Доброе утро хотел спросить а на докере как то можно со старых image запустить контейнер ?