hexlet-correction icon indicating copy to clipboard operation
hexlet-correction copied to clipboard

add oauth2 github authentification

Open devbulygin opened this issue 1 year ago • 16 comments

Добавил первую версию oauth2, подскажите куда двигаться дальше

devbulygin avatar Jun 16 '23 13:06 devbulygin

@devbulygin попробуй задеплоить, если хоть немного работает, мы посмотрим @Malcom1986 посмотри, пожалуйст :)

ssssank avatar Jun 19 '23 11:06 ssssank

@ssssank да, у меня не получается залить на рендер, он просит dockerfile, а тут docker compose, не могу разобраться

devbulygin avatar Jun 19 '23 13:06 devbulygin

@devbulygin Привет! Этот docker compose тебе не пригодится для деплоя, он нужен чтобы локально запустить базу данных в контейнере. А render предоставляет нам свою базу данных как сервис. Так что да, тут понадобится докерфайл. Тут ты верно начал. Внутри нужно будет скопировать приложение в контейнер, запустить сборку и упаковку. А в качестве команды запуска запустить джар архив с приложением. Глянь статью https://ru.hexlet.io/blog/posts/render-java, она поможет с общей последовательностью действий разобраться. Отличие в том, что тут мы мавен используем, так что команды поменяются. Но принцип тот же останется. Примеры команд упаковки и запуска приложения можно в мейкфайле подсмотреть

Malcom1986 avatar Jun 20 '23 09:06 Malcom1986

@Malcom1986 мне нужна помощь,

FROM openjdk:19

COPY / .

RUN ./mvnw -B -ntp -fae clean verify

CMD java -jar -Dspring.profiles.active=dev ./target/typoreporter-*.jar

EXPOSE 5432

devbulygin avatar Jun 20 '23 19:06 devbulygin

Привет! Ты верно мыслишь в целом. Но смотри, у нас используется мавен, а значит нужно будет его установить или взять за основу такой образ, где помимо джавы еще и мавен установлен сразу. Можно взять официальный образ мавена:

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 базы, пользователь, пароль). Тут тебе статья про рендер поможет

Malcom1986 avatar Jun 22 '23 08:06 Malcom1986

Давай только докерфайл не будем в ПР добавлять, он тебе только для деплоя на рендер нужен. Локально мы без докера пока приложение запускаем (в докере только база)

Malcom1986 avatar Jun 22 '23 09:06 Malcom1986

получилось!

http://hexlet-correction-production.up.railway.app

devbulygin avatar Jun 22 '23 20:06 devbulygin

Здорово, что получилось! Есть несколько замечаний, которые попались сразу: на странице входа есть возможность войти только через гитхаб, зарегистрироваться/войти через почту нельзя, кнопки потерялись. И ещё сервис падает с 500 ошибкой при попытке создать воркспейс, там кажется что-то с обработкой ошибок

@Malcom1986 посмотри, что скажешь? :)

ssssank avatar Jun 26 '23 07:06 ssssank

@devbulygin Привет! Сборка упала, поправь пожалуйста

Malcom1986 avatar Jun 28 '23 12:06 Malcom1986

@Malcom1986 Поправил!

devbulygin avatar Jun 28 '23 12:06 devbulygin

@devbulygin как-будто бы ничего не изменилось? :)

ssssank avatar Jun 30 '23 07:06 ssssank

К сожалению, экшен так и падает

ssssank avatar Jul 21 '23 14:07 ssssank

@devbulygin привет! Скажи, пожалуйста, будет у тебя возможность доделать этот ПР, нужна какая-нибудь помощь?

ola-9 avatar Jul 28 '23 08:07 ola-9

Давайте гляну на неделе

dzencot avatar Aug 07 '23 05:08 dzencot

Пока перевожу в драфт @Malcom1986 можешь обрисовать небольшой, что нужно сделать дальше?

fey avatar Aug 11 '23 17:08 fey

@fey, здравствуйте! Добавил аутентификацию с помощью гитхаба. Можете посмотреть? Есть недочеты пока на беке, поэтому прошу посмотреть как на прототип/черновик )

https://hexlet-correction-ac3h.onrender.com/

d1z3d avatar Jun 28 '24 08:06 d1z3d