hexlet-correction
hexlet-correction copied to clipboard
add oauth2 github authentification
Добавил первую версию oauth2, подскажите куда двигаться дальше
@devbulygin попробуй задеплоить, если хоть немного работает, мы посмотрим @Malcom1986 посмотри, пожалуйст :)
@ssssank да, у меня не получается залить на рендер, он просит dockerfile, а тут docker compose, не могу разобраться
@devbulygin Привет! Этот docker compose тебе не пригодится для деплоя, он нужен чтобы локально запустить базу данных в контейнере. А render предоставляет нам свою базу данных как сервис. Так что да, тут понадобится докерфайл. Тут ты верно начал. Внутри нужно будет скопировать приложение в контейнер, запустить сборку и упаковку. А в качестве команды запуска запустить джар архив с приложением. Глянь статью https://ru.hexlet.io/blog/posts/render-java, она поможет с общей последовательностью действий разобраться. Отличие в том, что тут мы мавен используем, так что команды поменяются. Но принцип тот же останется. Примеры команд упаковки и запуска приложения можно в мейкфайле подсмотреть
@Malcom1986 мне нужна помощь,
FROM openjdk:19
COPY / .
RUN ./mvnw -B -ntp -fae clean verify
CMD java -jar -Dspring.profiles.active=dev ./target/typoreporter-*.jar
EXPOSE 5432
Привет! Ты верно мыслишь в целом. Но смотри, у нас используется мавен, а значит нужно будет его установить или взять за основу такой образ, где помимо джавы еще и мавен установлен сразу. Можно взять официальный образ мавена:
FROM maven:3.9.2-eclipse-temurin-20
Следущий момент. Скопировать внутрь мы должны файлы проекта. А значит должны копировать не из корня файловой системы, а из текущей директории (там, где у нас докерфайл лежит)
COPY . .
Дальше мы должны собрать проект и упаковать в джар. При этом тесты запускать нам не обязательно
RUN mvn clean package -DskipTests
Теперь у нас есть джарник с приложением. Осталось указать команду, которая выполнитс при старте контейнера. Это команда на запуск нашего приложения. Но только не с дев профилем, а уже с прод. Так как это не локальная разработка. Команду старта можно в procfile подглядеть:
CMD java -Xmx256m -jar target/typoreporter-*.jar --spring.profiles.active=default,prod --server.port=$PORT
Итого получаем такой докерфайл:
FROM maven:3.9.2-eclipse-temurin-20
COPY . .
RUN mvn clean package -DskipTests
CMD java -Xmx256m -jar target/typoreporter-*.jar --spring.profiles.active=default,prod --server.port=$PORT
Осталось только создать в рендере базу данных и установить приложению в рендере переменные окружения (url базы, пользователь, пароль). Тут тебе статья про рендер поможет
Давай только докерфайл не будем в ПР добавлять, он тебе только для деплоя на рендер нужен. Локально мы без докера пока приложение запускаем (в докере только база)
получилось!
http://hexlet-correction-production.up.railway.app
Здорово, что получилось! Есть несколько замечаний, которые попались сразу: на странице входа есть возможность войти только через гитхаб, зарегистрироваться/войти через почту нельзя, кнопки потерялись. И ещё сервис падает с 500 ошибкой при попытке создать воркспейс, там кажется что-то с обработкой ошибок
@Malcom1986 посмотри, что скажешь? :)
@devbulygin Привет! Сборка упала, поправь пожалуйста
@Malcom1986 Поправил!
@devbulygin как-будто бы ничего не изменилось? :)
К сожалению, экшен так и падает
@devbulygin привет! Скажи, пожалуйста, будет у тебя возможность доделать этот ПР, нужна какая-нибудь помощь?
Давайте гляну на неделе
Пока перевожу в драфт @Malcom1986 можешь обрисовать небольшой, что нужно сделать дальше?
@fey, здравствуйте! Добавил аутентификацию с помощью гитхаба. Можете посмотреть? Есть недочеты пока на беке, поэтому прошу посмотреть как на прототип/черновик )
https://hexlet-correction-ac3h.onrender.com/