다음 글
군대에 있으면 개인 PC는 개뿔 그냥 인터넷만 가능한 뚱딴지 같은 상황이 나온다. 여기서 코딩을 하기위해서는 클라우드를 바라볼 수 밖에 없게 되어있는데, 오히려 이런 압박이 경험이 되는것 같아서 요즘은 나쁘지 않게 생각하고도 있다. 아마 나처럼 국가의 부름을 받아버린 군대의 컴공생들에게 그냥 적절한 튜토리얼이 되었으면 한다.
마이크로소프트사에서 인정하는 대학교 재학생이라면 Azure를 어느정도 무료로 지원해 주기 때문에, 한번 써보려고 한다. 다른 대안으로는 groomIDE도 좋고, AWS도 좋은 것 같긴 한데 일단 클라우드를 쓰는 느낌을 돈 안쓰고 받아보고 싶어서 이렇게 만들어 보려고 한다.
1. 일단 MS사에서 만든 RoR 샘플 앱을 포크해서 자신의 repo로 만든다.
Azure에서도 git 주소를 자체적으로 주는 것은 사실이지만, 내가 이용하고 있는 IDE인 replit에서 git url을 기반으로 세팅을 하는 방법을 도저히 알아낼 수가 없어서 이렇게 진행하기로 했다. 만약 PC가 있어서 local에서 진행할 수 있다면 이건 스킵하고 바로 아래의 참고사이트를 진행하면 될 것이다.
2. 주요 참고 사이트를 참고해서 튜토리얼을 진행한다.
당연히 여기에 나오는 git주소를 ms사꺼 말고 방금 본인이 포킹한 repo의 git주소를 쓰면 된다.
https://learn.microsoft.com/en-us/azure/app-service/quickstart-ruby?tabs=cli
더도 덜도 말고 Azure에 구독권만 있어도 바로 따라할 수 있을 것이다. 아무것도 없는 상태에서 시작하면 약간 다른 점이 있는데 클라우드 셸을 킬때 스토리지를 만들라고 지적하는 부분이다. 그냥 만들기 버튼이 학생용 Azure 스타터에 있을 것이기 때문에 구독권을 바꿔주고 스토리지를 생성하면 된다.
앞으로는 Cloud Shell에서 master branch를 실제 앱으로 push하는 법인 이걸 잘 기억해두면 된다.
git pull origin master
git push azure main
3. .replit, replit.nix 세팅
제일 중요한 건 바로 앱을 테스트할 수 있게하는 환경과 런세팅이다. 이거 없어도 개발은 되지만 상당히 답답할 것이므로...
[.replit]
run = "bundle exec rails server --binding=0.0.0.0"
entrypoint = "app/controllers/application_controller.rb"
hidden = [".bundle"]
[packager]
language = "ruby"
[packager.features]
packageSearch = true
guessImports = true
[languages]
[languages.ruby]
pattern = "**/*.rb"
[languages.ruby.languageServer]
start = "solargraph stdio"
[gitHubImport]
requiredFiles = [".replit", "replit.nix", "README.md"]
[nix]
channel = "stable-22_05"
[replit.nix]
replit에서 기본적으로 넣어놓은 루비는 2.7.6이라 Azure와 맞지 않아 그냥 사용할 수는 없다. 자세한 내용은 이 포스트를 참고하면 된다.
{ pkgs }:
let
pkgs = import (builtins.fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/860b56be91fb874d48e23a950815969a7b832fbc.tar.gz";
}) {};
in {
deps = [
pkgs.nodejs-16_x
pkgs.sqlite
pkgs.ruby
pkgs.libffi
pkgs.rubyPackages.ffi
pkgs.rubyPackages.ffi-compiler
pkgs.glibc
];
}
https://docs.replit.com/programming-ide/rails-on-replit
4. bundle install를 run을 해봐서 정상적으로 전부 진행되는지 확인하기.
bundle install #되는지 확인하고 안되면 아래 gem들 설치
bundle exec rails server --binding=0.0.0.0 #실제 서버실행 코드
나같은 경우 bundle install에서는 ffi설치가 되지 않았고, 서버 실행에서는 tzinfo-data가 설치되어 있지 않아서 막힌 적이 있다. ffi 설치의 경우에는 위의 replit.nix파일을 보면 pkgs.libffi라고 되어있는 부분이 있는데 그걸 반드시 포함해야한다. 그걸 넣으니까 정상적으로 설치가 진행이 되었다. 이후 tzinfo-datad의 경우에는 gemfile을 건드렸는데,
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', '~> 1.2022', '>= 1.2022.6'
마지막 줄을 이렇게 바꿔서 그냥 최신버전을 무조건 설치하게 만들어 놓았다.
https://learn.microsoft.com/ko-kr/azure/app-service/configure-language-ruby
'General CS > Azure' 카테고리의 다른 글
[군대식 클라우드 코딩] 2. Rails 7.0.4로 업그레이드 시도 (2) | 2022.11.12 |
---|