마지막으로 autoindex 기능만 처리하면 된다. 문서에 따르면 autoindex는 index에 명시된 파일들을 찾지 못할 경우 디렉토리의 목록을 출려해준다. 우리의 설정파일에 명시된 index.*라는 파일들을 볼 수 있다. 브라우저에서 접근하는 우리의 루트 디렉토리의 대표문서들로 해당 문서들을 찾을 수 없을 경우 아래와 같이 디렉토리의 문서들을 목록으로 출력해줄 수 있다.
autoindex 기능을 사용하기 위해 niginx 설정파일을 수정해주자.
vi /etc/nginx/sites-available/default
default 파일을 vim편집기로 열어서 아래와 같이 수정해준다.
#index index.php index.html index.htm index.nginx-debian.html; location / { autoindex on; try_files $uri $uri/ =404; }
index의 명시된 파일을 찾지 못하게 그냥 주석처리해버렸다. "/" 패턴의 location블럭에 autoindex on; 을 추가해준다. 수정한 파일을 저장하고 nginx를 reload 시켜준다. 브라우저에서 localhost로 접속해보면 목록이 출력되는 것을 확인할 수 있다. 또한 목록의 파일링크를 클릭하면 해당하는 문서로 redirection할 수 있다.
subject가 원하는 사항을 만족했다. 이제 이 작업들을 자동화시켜서 매번 똑같은 작업을 반복하지 않아도 간단하게 Container를 생성시켜줄 Dockerfile을 작성한다. 답을 기록하기에는 뭣해서 본인이 쓴 지시어만 몇가지 소개하고 마치겠다.
FROM : 가장 먼저 쓰는 지시어로 빌드할 이미지의 기반이 될 image를 지정한다.
FROM <이미지이름>:<태그> ex) FROM debian:buster
RUN : FROM으로 지정한 image에서 실행할 명령이다. apt-get install 이나 생성한 파일을 적절히 배치하도록 mv 따위를 쓸 때 쓴다. 제일 많이 쓴 지시어다.
RUN 명령어 ex) RUN apt-get update
COPY : image 안에서 수정하기는 번거로운 설정파일들을 미리 완성해서 보유하고 있다가 빌드 시에 image 안에 적절히 복사해주는데 사용했다.
COPY <복사할 파일> <이미지에서 파일이 복사될 경로> ex) COPY srcs/default.conf /etc/nginx/sites-available/default
CMD : 빌드된 image를 기반으로 container가 생성되고 실행될 명령어를 지정한다. docker run으로 컨테이너 생성 시에 /bin/bash를 붙이면 해당 명령에 덮어씌워지는 일이 발생하니 주의하자.
CMD 명령어 ex) CMD bash init.sh