Даня
он лежит в /opt/app/cofigs
Dmytro 🇺🇦
Alexander
так же, как копировал свой никнейм
Даня
спс
Даня
!
Dmytro 🇺🇦
Денис
Денис
Alexander
Alexander
через volumes,
я пишу root до реального адреса, вне контейнера и вижу ошибку 404 от nginx
если я пишу адрес внутри контейнера, то вижу 404 из контейнера
Alexander
/var/www/laravel/public это внутри контейнера
Alexander
Alexander
а root прописан так как на хосте, да?
Alexander
Alexander
да, в папку которая примонтирована
🏁Александр
кмх
🏁Александр
всем привет
🏁Александр
тут сижу изучаю docker-compose
🏁Александр
(у меня GO)
🏁Александр
линканул к основному контейнеру (App) еще и контейнер с пакетным менеджером
🏁Александр
services:
dep:
image: instrumentisto/dep
web:
image: golang
command: >
bash -c "
cd cmd/main
&& dep ensure -vendor-only
&& go build -o ../../bin/main .
&& cd ../../bin
&& ./main"
depends_on:
- mongo
links:
- dep
...
🏁Александр
вернее даже так (поправил выше)
🏁Александр
но что-то он dep не видит 🙁
🏁Александр
билда падает на dep ensure -vendor-only типо нет такой команды
アリテミ
Так compose сервисы по сети объединяет, если я не ошибаюсь
🏁Александр
ну мне надо именно два контейнера склеить
アリテミ
А для какой цели?
🏁Александр
там подгрузка зависимостей
🏁Александр
перед билдом
🏁Александр
я пробывал так-же в dep это сделать, тоесть прописать ему command, но тогда web может запустить раньше чем он закончит и жопа
アリテミ
Может быть лучше добавить dep в образ, где будет происходить сборка?
🏁Александр
я не хотел собирать кастом образ ;(
アリテミ
Хотя, как по мне, лучше собирать в принципе готовый образ с бинарниками, и уже его поднимать компоузом
🏁Александр
ну там сложно уже начинается
🏁Александр
это придется какую то систему сборки делать
アリテミ
А у вас ее нет?(
🏁Александр
есть
🏁Александр
но я чисто на коленке собираю докер
アリテミ
Для чисто на коленке можно написать скрипт, который собирает образ, тегирует, и тут же поднимает компоуз с ним, что думаете?
🏁Александр
я чисто разработчик, у нас девопс этим занимался 🙁
🏁Александр
мне пришлось вникать в докера за день
🏁Александр
я не вьеду сейчас с этими "собрать в одном контейнере" "перемонтировать в друго контейнер"
アリテミ
Да ничего страшного, получится что-то вроде docker build && docker-compose up
アリテミ
Либо же, если хотите билд в этом же контейнере при поднятии приложения, есть еще один вариант
アリテミ
Просто go get dep
アリテミ
(Ну с полным путем до репозитория dep)
🏁Александр
ну скачивать деп не очень конечно
アリテミ
Но это в случае, если в основном контейнере есть голанг
🏁Александр
а докер позволяет собрать контейнер из двух?
🏁Александр
базовых
🏁Александр
можно наверно намутить кастомный web контейнер из двух:
FROM golang
FROM instrumentisto/dep
🏁Александр
и потом уже композером его профигачить
アリテミ
Сейчас покажу пример
アリテミ
FROM *** as builder
WORKDIR /go/src/***
ADD . /go/src/***
RUN make build_docker
FROM ***
WORKDIR /app
COPY --from=builder /go/bin/* ./
アリテミ
Получится что-то такое, но с вашими путями вместо ***
アリテミ
https://docs.docker.com/develop/develop-images/multistage-build/
アリテミ
https://made2591.github.io/posts/goa-docker-multistage
アリテミ
Надеюсь, что поможет!
🏁Александр
не понятно зачем тут копи
アリテミ
Затем что вы сначала создаете промежуточный образ, а потом копируете из него результат в окончательный
🏁Александр
странно что в корень копируется
アリテミ
Докер как слоеный пирог, берется базовый слой, в нем что-то делается(создаются новые слои)
Мультистейдж позволяет из одного такого пирога взять что-то и положить в другой пирог(основанный на другом базовом образе, с другим окружением, и т.п.)
アリテミ
Почему в корень?)
🏁Александр
COPY --from=builder /go/bin/* ./
🏁Александр
сорри в app
アリテミ
Чуть выше Workdir указан
アリテミ
ну для моих целей надо было туда положить, это уже под ваши задачи подстраивается. Чаще всего в корень кладут(UPD: запуская через ./appbin) или /usr/local/bin (чтобы вызывать без указания пути к бинарнику)
🏁Александр
а ADD . зачем?
🏁Александр
у нас же и так подмонтирована директория как бы
アリテミ
Чтобы положить исходники по тому пути, где их голанг ожидает видеть
アリテミ
По-умолчанию он смотрит в /go/src/
who are you
типа запускать контейнер с пхп отдельно? не пойму, в докеркопоз же запускается
who are you
Второй день не пойму как внутри контейнера иметь своего юзера чтобы пхп внутри контейнера работало под тем же юзером под которым я работаю с папкой проекта
who are you
😂 чот сложно
アリテミ
Зачем в контейнере пользователь?)