Dan
Это тулзы полезные
Alex
и да я же код сюда не выкладываю
а имя это не важно
ладно напишу скрапи фейсбук) - так будет легче?)
Dan
Dan
Да хрен с ним, с авито :) это ж я так
Dan
из серии «Разрешите прикопаться»
Dan
George
Alex
больше не буду)
да уже привык к настолько токсичным сообществам
что уже подумал
блин и тут прикопались(
Dan
Должен сказать что тут токсичности почти нет. Здесь вообще весьма атмосферно и достаточно профессионально.
Dan
Так исторически сложилось
Alex
Tadeusz
от заливает, а... 😃
Dan
Kram давай ещё раз, бот злой режет ссылки и картинки :)
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 и оно ничего не находило
George
Dan
🤔
George
ты явно не понимаешь что такое контекст докера, почему он копируется в /var/lib/docker/tmp
Dan
Для copy нужно указывать всегда путь относительно докерфайла
Dan
А лучше полный путь
George
Dan
Workdir это директива, указываяющая рабочую директорию внутри контейнера
Dan
Ну да
Dan
В контексте
George
а контекст != не всегда то, где лежит докерфайл
George
полная команда
George
docker build -f <путь_к_докерфайлу> -t <полный тег образа > <контекст - что будет в докер засовывать, обычно указывают ".">
NM
Dan
Roman
Roman
но я к тому, что защищаться от скраппинга - это так себе идея
Alex
всем привет)
я запустил контейнер
docker exec -d 5915eca493a7 scrapy crawl facebook
все запустилось и работает, если я зайду в контейнер я увижу работу scrapy в фоне
а можно вытащить этот процес foreground так сказать
Andrey
Alex
Фигню сморозил?)
Dmitrii
Dmitrii
флаг -i
Dmitrii
например
Alex
Anonymous
Привет
Anonymous
Кто-нибудь знает как сделать так, чтобы cli запускался только при вызове docker-compose run cli?
George
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 запустить контейнер ?