``이 시리즈에서는 개발 시 Docker를 사용하는 동기와 이점을 살펴보겠습니다. Ruby on Rails 및 React 개발을 중심으로 이를 사용하여 앞으로 나아가는 데 도움이 되는 일상적인 팁을 제공할 예정입니다.
이 시리즈에서는 Docker의 핵심 개념을 설명하지 않습니다. 아직 모르신다면 Docker의 공식 문서를 읽어보신 후 다시 방문하시기를 적극 권장합니다.
동기부여
이것은 개인적인 (및 팀!) 경험입니다. 비슷한 상황에 처할 수도 있으며 이는 앞으로 나아가고 첫 걸음을 내딛는 데 도움이 될 수 있습니다.
몇 달 전까지만 해도 Ruby on Rails, 미니멀 Ruby 앱, React 앱 개발을 위한 표준 설정은 매우 간단했습니다.
Ruby/Ruby on Rails의 경우 chruby, ruby-install(그리고 필요한 Ruby 버전은 2.3, 2.5, 심지어 2.6까지!)을 설치하고 프로젝트를 복제하고 번들러인 Postgres를 사용하여 gem을 설치했습니다. 우리는 주로 Postgres를 사용합니다) 그리고 저는 갈 준비가 되었습니다. 물론 Redis나 다른 데이터베이스가 필요하면 설치해야 했습니다.
마찬가지로 React 프로젝트의 경우 방금 노드를 설치하고 종속 항목을 설치했습니다. homebrew(또는 Linux를 사용하는 경우 apt-get)의 도움으로 인터프리터, 종속성 등을 설치하는 이 프로세스는 쉽지만 시간이 좀 걸립니다.
한 달 전에 완료해야 할 작업이 있었습니다. Ruby 1.9.3 외에 Rails 3 앱의 작은 버그를 수정하는 것이었습니다! 새 버전의 Ruby보다 조금 더 어려웠습니다. 인터프리터 자체가 아니라 프로젝트의 종속성을 위한 것입니다. 시간이 지남에 따라 이전 종속성은 종속성으로 인해 설치하기가 더 어려워질 수 있습니다. 컴퓨터에 최신 버전의 종속성이 있을 수 있으며 이전 항목을 설치하면 시간이 걸릴 수 있습니다.
잠깐 고민한 끝에 앱을 도킹하기로 결정했습니다. 솔직히 말해서 인터프리터/종속성 버전과 싸우는 것보다 시간이 더 오래 걸렸는지는 모르겠지만 결과는 좋았습니다. 버그가 쉽게 수정되었을 뿐만 아니라 그 이후로 작업하는 모든 앱(나중에 살펴보겠지만 매일 사용하는 일부 앱도 포함)을 Docker화하기로 결정했으며 지금은 로컬 개발에만 Docker를 사용합니다. 기본 설정은 더 이상 필요하지 않습니다.
혜택
일부 이점은 분명하지만(특히 이미 docker를 사용하고 있는 경우), 어쨌든 살펴보고 더 강력한 사례를 공개하겠습니다.
전체 프로젝트는 시스템 관점에서 설정 방법(데이터베이스, 서비스 등)을 설명합니다.
새로운 개발자는 쉽게 프로젝트에 참여할 수 있으며 명령만 실행하면 바로 시작할 수 있습니다.
로컬 환경이 변경되더라도 앱은 변경되지 않습니다. 일반적으로 번들러의 경우 문제가 되지 않지만 시간이 지남에 따라 변경될 수 있는 시스템 내에서 다른 바이너리나 라이브러리를 사용하게 될 수도 있습니다.
질문
다음은 제가 스스로에게 던진 질문입니다(여러분도 그런 질문을 갖고 있을 수도 있습니다).
도커 이미지가 디스크 공간을 많이 차지하지 않나요?
예, 그럴 것입니다. 그러나 원할 경우 필요할 때 제거하고 다시 만들 수 있습니다. 그것은 큰 문제가 아닙니다. 매번 빌드하고 싶지 않다면 이미지를 저장소에 푸시하면 됩니다(예: docker 허브).
공연은 어떻습니까? 리소스를 많이 소모하나요?
짧은 대답: 아니요. 이는 일반적인 프로세스이며 모든 요구 사항을 기본적으로 설치한 경우 소비하는 것과 동일한 리소스를 소비합니다. docker stats를 실행하여 직접 찾아보실 수 있습니다!
다른 질문이 있으신가요? 연락주세요!
결론
저에게는 균형이 긍정적이었습니다. Docker를 사용한 이후로 개발 시간, 시작 및 실행 등의 측면에서 모든 것이 동일했습니다. 게다가 앞서 언급한 이점도 있습니다.
다음 에피소드에도 함께해주세요!
위 내용은 개발 중인 Docker: 에피소드 1의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!