Я думаю, лучше использовать устоявшийся термин "образ", а не "изображение". Тут смысл не в значении "картинка", а в значении "слепок", "снимок". Disk image -- "образ диска".
Спасибо большое! Это мои первые попытки создания контента для UA-cam, сейчас уже записано много видео, вплоть до конца зимы. Идей хоть отбавляй + постоянно работаю над повышением качества, так что в скором времени на канале будет намного больше интересных видео!
спасибо большое за видео. очень полезная инфа особенно для таких новичков как я. я бы только хотел предложить если вам не сложно обсуждайте пожалуйста едж кейси, например у меня версия golang 15 а golang:latest уже 16 и я вот сидел пытался понять что не так. Потом если возможно пожалуйста коментируйте флаги например -t сокращение от tag. (aka name). Важно: я за здоровую критику ни в коем случае не возмущаюсь или чтото такое. Пишу это потому что у совершенства нету пределов. Очень благодарен за вашы видео
Можно, посмотри докерфайлы в этом проекте github.com/zhashkevych/jewerly-shop-backend Самый легковесный контейнер использует не убунту, а alpine, насколько мне известно
Смотрю уже двадцатое видео, и не понимаю зачем мне нуден Docker 🤣🤣🤣 Я и так тупо свой код архивирую, кидаю на хостинг, либо на другой локальный сервер, заливаю базу данных (файл sql) и усё. Зач он, я так и не понял...
Приведу практический пример: в интеграционных тестах, например, если будешь их писать. Пример: в тесте выполняем отправку http запросов с помощью httptest на все возможные ендпоинты сервера, этот сервер работает с БД. В чём же тут пригодился докер ? Возьмём следующую последовательность запросов: 1) Создать пользователя, 2) Отредактировать пользователя, 3) Удалить пользователя. Допустим, мы не используем докер, и у нас возникла ошибка на 2 запросе: тест прекратился и сообщил об ошибке. В чём же тут проблема ? Проблема в том, что 3 запрос не выполнился, и пользователь остался в БД. При последующем запуске теста мы провалимся на 1 шаге, когда попытаемся создать уже существующего пользователя. Использование докера решает эту проблему - он не сохраняет состояния БД после закрытия контейнера. То есть, можно сколько угодно запускать тесты, и не беспокоится об откате изменений в БД, в случае какой-то ошибки в середине теста. А если хочешь подойти к вопросу теоретически - посмотри это видео ua-cam.com/video/KPlYP_qmsUg/v-deo.html , или наконец погугли)
Выдаёт ошибку на третьем шаге/инструкции запуска контейнера: > [3/3] RUN go build -o main .: 0.328 go: go.mod file not found in current directory or any parent directory; see 'go help modules' Может кто сталкивался? Если создаю файл go.mod то ошибка уже такая: > [3/3] RUN go build -o main .: 0.226 $GOPATH/go.mod exists but should not
@@Bliznets1992 я нашёл такое решение: RUN mkdir /app ADD . /app WORKDIR /app RUN go mod download RUN go build -o main . CMD [“/app/main”] Пытаюсь понять, зачем создаётся папка новая и почему оттуда всё работает ок
@@redlight9557 новая папка создаётся потому, что удобнее потом работать с отдельной папкой, а так ты в корень образа закидываешь все файлы, а вдруг тебе ещё что-то надо будет в этот image закинуть
Я думаю, лучше использовать устоявшийся термин "образ", а не "изображение". Тут смысл не в значении "картинка", а в значении "слепок", "снимок". Disk image -- "образ диска".
Отличный урок! Всё отлично разъяснил. Молодец! И огромное спасибо.
Но хотелось бы услышать о способах "закинуть" бинарник golang'а в контейнер.
Максим, спасибо за видео.
Мне нравится ваше творчество. Продолжаете в этом духе надеюсь ещё будут новые видосы.
Спасибо большое!
Это мои первые попытки создания контента для UA-cam, сейчас уже записано много видео, вплоть до конца зимы. Идей хоть отбавляй + постоянно работаю над повышением качества, так что в скором времени на канале будет намного больше интересных видео!
Максим, спасибо за видосы!
Было бы классно получить обзор goland, его возможности и плюшечки.
На очереди публикации уже стоит видео "Основы Go за 30 минут" :) Будет на канале через 2 недели
@@MaksimZhashkevych я про golanD ide
@@123larisa123 понял) спасибо за идею, возможно запишу подобное видео
Спасибо, продолжай дальше!
Более подробное и обновленное видео по Docker
ua-cam.com/video/KPlYP_qmsUg/v-deo.html
спасибо большое за видео. очень полезная инфа особенно для таких новичков как я. я бы только хотел предложить если вам не сложно обсуждайте пожалуйста едж кейси, например у меня версия golang 15 а golang:latest уже 16 и я вот сидел пытался понять что не так. Потом если возможно пожалуйста коментируйте флаги например -t сокращение от tag. (aka name). Важно: я за здоровую критику ни в коем случае не возмущаюсь или чтото такое. Пишу это потому что у совершенства нету пределов. Очень благодарен за вашы видео
Ничего не понятно, но очень интересно ..
не говори брат, тупым себя чувствую
Отличные видео. Пожалуй лучшие на рутубе. Скажите пожалуйста, почему следующие видео из плейлиста недоступны для просмотра?
Спасибо! Видео, которые пока не доступны стоят на очереди публикации. В ближайшем времени все будет на канале)
Все работает)
Отличное видео, спасибо.
Thanks)
Спасибо
Вопрос. А можно ли не компилировать в контейнере, а загрузить исполняемый файл. Так же загрузить файл в контейнер ubuntu, так как он меньше размером.
Можно, посмотри докерфайлы в этом проекте
github.com/zhashkevych/jewerly-shop-backend
Самый легковесный контейнер использует не убунту, а alpine, насколько мне известно
Почему "изображение", а не "образ"?
NixOS?
Можно только из за псайбоя досматривать
ООООчень тихо.
Смотрю уже двадцатое видео, и не понимаю зачем мне нуден Docker 🤣🤣🤣
Я и так тупо свой код архивирую, кидаю на хостинг, либо на другой локальный сервер, заливаю базу данных (файл sql) и усё. Зач он, я так и не понял...
Ну так попробуй осилить и прочитать зачем он. Если он тебе не нужен - то зачем вообще пытаться его применять.
просто у тебя только 1 сервер и свой.
Приведу практический пример: в интеграционных тестах, например, если будешь их писать. Пример: в тесте выполняем отправку http запросов с помощью httptest на все возможные ендпоинты сервера, этот сервер работает с БД. В чём же тут пригодился докер ? Возьмём следующую последовательность запросов: 1) Создать пользователя, 2) Отредактировать пользователя, 3) Удалить пользователя. Допустим, мы не используем докер, и у нас возникла ошибка на 2 запросе: тест прекратился и сообщил об ошибке. В чём же тут проблема ? Проблема в том, что 3 запрос не выполнился, и пользователь остался в БД. При последующем запуске теста мы провалимся на 1 шаге, когда попытаемся создать уже существующего пользователя. Использование докера решает эту проблему - он не сохраняет состояния БД после закрытия контейнера. То есть, можно сколько угодно запускать тесты, и не беспокоится об откате изменений в БД, в случае какой-то ошибки в середине теста.
А если хочешь подойти к вопросу теоретически - посмотри это видео ua-cam.com/video/KPlYP_qmsUg/v-deo.html , или наконец погугли)
Выдаёт ошибку на третьем шаге/инструкции запуска контейнера:
> [3/3] RUN go build -o main .:
0.328 go: go.mod file not found in current directory or any parent directory; see 'go help modules'
Может кто сталкивался?
Если создаю файл go.mod то ошибка уже такая:
> [3/3] RUN go build -o main .:
0.226 $GOPATH/go.mod exists but should not
поменял строку на:
RUN go build -o main main.go
заработало
При запуске docker build . на убунте выдает ошибку $GOPATH/go.mod exists but should not
Сталкивался кто-нибудь? Подскажите, как решить
Пофиксил? Сам столкнулся с такой же проблемой
@@redlight9557 да, в докер файле просто добавил конкретно строку RUN copy go.mod
@@Bliznets1992 я нашёл такое решение:
RUN mkdir /app
ADD . /app
WORKDIR /app
RUN go mod download
RUN go build -o main .
CMD [“/app/main”]
Пытаюсь понять, зачем создаётся папка новая и почему оттуда всё работает ок
@@redlight9557 новая папка создаётся потому, что удобнее потом работать с отдельной папкой, а так ты в корень образа закидываешь все файлы, а вдруг тебе ещё что-то надо будет в этот image закинуть
Может кому-то пригодится. Пофиксил, добавив вот вот это после FROM: WORKDIR learn_docker/.