42seoul/inception

inception subject

syom 2021. 6. 6. 21:18

이 프로젝트는 Docker를 사용하여 가상머신 관리에 대한 지식을 넓히는 것을 목표로 합니다.

여러 Docker 이미지를 가상화하여 새 개인 가상 머신에 생성합니다.

  • 프로젝트 구성에 필요한 모든 파일은 srcs 폴더에 저장해야 합니다.
  • Makefile도 필요하며 디렉토리의 루트에 있어야 합니다. 전체 응용 프로그램을 설정해야 합니다(즉, 다음을 사용하여 Docker 이미지를 빌드해야 함).
  • 이 과목에서는 배경에 따라 아직 배우지 못한 개념을 연습해야 합니다. 따라서 이 과제를 완료하기 위해 도커 사용법과 관련된 많은 문서를 읽는 것을 주저하지 마십시오.

기본 파트

이 프로젝트는 특정 규칙에 따라 서로 다른 서비스로 구성된 소규모 인프라를 설정하는 것으로 구성됩니다. 전체 프로젝트는 가상 머신에서 수행해야 합니다.

도커 컴포지션을 사용해야 합니다.

각 도커 이미지의 이름은 해당 서비스와 동일해야 합니다.

각 서비스는 전용 컨테이너에서 실행되어야 합니다.

성능 문제를 위해 컨테이너는 영구 안정 버전인 Alpine Linux에서 제작되거나 Debian Buster에서 제작되어야 합니다. 선택은 여러분의 것이다.

또한 서비스당 하나씩 Docker 파일을 직접 작성해야 합니다. 도커 파일을 도커 컴포지션에서 호출해야 합니다.

Docker 파일은 Makefile로 (docker-compose.yaml) 호출해야 합니다.

즉, 프로젝트의 도커 이미지를 직접 만들어야 합니다. 그런 다음 Docker Hub(Alpine/Debian이 이 규칙에서 제외됨)와 같은 서비스를 사용할 뿐만 아니라 준비된 Docker 이미지를 가져오는 것이 금지됩니다.

그런 다음 다음을 설정해야 합니다.

  • TLSv1.2 또는 TLSv1.3만 포함된 NGINX를 포함하는 Docker 컨테이너.
  • WordPress + php-fpm이 포함된 Docker 컨테이너(설치되어야 하며 nginx 없이만 구성됨)
  • nginx 없이 MariaDB만 포함하는 도커 컨테이너.
  • WordPress 데이터베이스가 들어 있는 볼륨.
  • WordPress 웹 사이트 파일이 들어 있는 두 번째 볼륨.
  • 컨테이너 간의 연결을 설정하는 도커 네트워크.

crash가 발생할 경우 컨테이너를 다시 시작해야 합니다.

도커 컨테이너는 가상머신이 아닙니다. 따라서 'tail-f' 등을 기반으로 한 해킹 패치를 사용하지 않는 것이 좋습니다.
실행하려고 할 때. 데몬이 어떻게 작동하는지, 데몬을 사용하는 것이 좋은지 아닌지 읽어보세요.

 

Read about PID 1 and the best practices for writing Dockerfiles.

 

물론 host 또는 --link 또는 link: 네트워크 사용은 금지되어 있습니다.
네트워크 라인이 Docker-compose.yml 파일에 있어야 합니다.
컨테이너는 무한 루프를 실행하는 명령으로 시작할 수 없습니다. 따라서 이는 진입점으로 사용되거나 진입점 스크립트에서 사용되는 모든 명령에도 적용됩니다.
다음은 몇 가지 금지된 해킹 패치입니다 : tail -f, bash, sleep infinity, while true

 

WordPress 데이터베이스에는 두 명의 사용자가 있어야 하며, 그 중 한 명은 관리자입니다. 관리자의 사용자 이름에는 admin/Admin 또는 administrator/Administrator(예: admin, administrator, Administrator, admin-123, and so forth)를 포함할 수 없습니다.

 

볼륨은 의 /home/login/data 폴더에서 사용할 수 있습니다.
도커를 사용하는 호스트 시스템 (a folder of the host machine using Docker).. 물론 로그인을 자신의 로그인으로 바꿔야 합니다.

 

쉽게 하려면 도메인 이름이 로컬 IP 주소를 가리키도록 구성해야 합니다.이 도메인 이름은 login.42.fr 이어야 합니다. 다시, 당신은 당신 자신의 로그인을 사용해야 합니다.예를 들어 로그인이 will인 경우 wil.42.fr은 will의 웹 사이트를 가리키는 IP 주소로 리디렉션됩니다.

 

latest 태그가 금지됩니다.
Dockerfile 에 암호가 없어야 합니다.
환경 변수를 사용해야 합니다.
또한 .env 파일을 사용하여 저장하는 것이 좋습니다.
환경 변수 .env 파일은 srcs 디렉토리의 루트에 있어야 합니다.
NGINX 컨테이너는 TLSv1.2 또는 TLSv1.3 프로토콜을 사용하는 포트 443을 통해서만 인프라로 진입할 수 있습니다.

다음은 예상 결과의 예제 다이어그램입니다.


파일 구성

bonus

이 프로젝트의 경우 보너스 부분은 단순함을 목표로 합니다.

각 추가 서비스에 대해 Docker 파일을 작성해야 합니다.

따라서, 각 컨테이너는 자체 컨테이너 내에서 실행되며, 필요한 경우 전용 볼륨을 갖습니다.

보너스 목록:

  • 캐시를 적절하게 관리하기 위해 WordPress 웹 사이트에 대한 Redis를 설정합니다.
  • WordPress 웹 사이트의 볼륨을 가리키는 FTP 서버 컨테이너를 설정합니다.
  • PHP를 제외한 원하는 언어로 간단한 정적 웹 사이트를 만듭니다(예, PHP는 제외됨! 예를 들어 쇼케이스 사이트 또는 이력서를 표시하는 사이트입니다.
  • Adminer 를 설정합니다.
  • 유용하다고 생각되는 원하는 서비스를 설정합니다. 방어하는 동안, 여러분은 여러분의 선택을 정당화해야 할 것입니다.

'42seoul > inception' 카테고리의 다른 글

inception - docker compose  (0) 2021.06.06