Docker 빌드 속도를 빠르게 만들기 위해 가장 중요한 개념은 레이어 캐시 인데Docker는 Dockerfile의 각 명령을 레이어로 나누고, 명령 + 입력 파일 해시를 기준으로 캐시를 재사용함.아래 예제는 Python 기반 서비스 기준으로 Docker 레이어 캐시가 어떻게 동작하는지 설명한다도입 배경내가 만들고 있는것중에 IBIS라고 나라장터 공고를 분석해서 AI를 이용해 분류 , 분석 , 추천 , 응답 하는 서비스를 하나 만들고 있는데, 이 나라장터 공고가 HWP 파일을 이용하다 보니 이거를 노드진영에서 처리하는 라이브러리로선택한게 LibreOffice 인데 이게 자바로 만들어져있다. 물론 자바로 만든게 문제는 아닌데 이걸 쓰기 위해 jre를 함께 받아와야했고,liberoffice에서 필요한것만 뽑..
도커 컴포즈 사용하면서 .env에 변수를 넣을때 특수문자가 들어있으면 발생하는 문제다. 처음에 만나면 문제가 어디서나는지 찾기 어려운데 예전 .env를 주입 받는 부분과도커 버전이 올라오면서 변경되는 부분이 생기면서 '!@#' 로 변수를 감싸주면 된다 '' 이걸로 공식문서에서는 "" , '' 둘다 된다고 했는데 테스트 해보니까 "" - 큰따움표는 안된다. 그냥 넣으면 "" 이것도 문자열로 판단하던데 이유는 좀더 알아 봐야한다. 어쨋든 해결법은 작은 따움표로 감싸면 해결된다.
IPTIME 설정하기일단 내부망에 연결된 곳으로 가야하는데 일반적으로 192.168.10.1 이렇게 쓴다. 관리 도구로 접속하자 고급설정 - NAT/라우터관리 - 포트포워딩 설정으로 접속한다. 여기에 인식할수 있는 이름과매핑할 C클래스 내부주소를 입력한다. 다음에 외부에서 들어올 포트를 주고내가 C클래스 내부주소를 할당받아 포트를 준 내부 포트를 할당해준다 예를들어 웹서버는 81API 서버는 11213으로 내부에서 할당해둔상태다.EX.) 192.xxx.x.xxx 이런식으로 되어 있는거할당을 해주면 아래처럼 접속이된다.외부에서 접속가능한 아이피:할당한포트이렇게 포트포워딩이 되서 준비가 완료된 상태이다.스크립트작성version: '3.8'services: nginx: container_name:..
docker logs [옵션] 컨테이너 이름 옵션 설정 1. -details로그에 포함된 추가 메타데이터(예: 라벨, 환경 변수)를 출력합니다.기본값: 추가 메타데이터 출력하지 않음.2. -follow, f실시간으로 로그를 스트리밍합니다.로그가 계속 업데이트되며, 컨테이너가 실행 중인 동안 출력이 지속적으로 표시됩니다.3. -since특정 시간 이후의 로그만 출력합니다.지원되는 형식:UNIX 타임스탬프 (예: 1609459200)RFC3339 형식 (예: 2021-01-01T00:00:00Z)간단한 상대적 시간 (예: 1h, 30m)4. -tail출력할 로그 줄 수를 지정합니다.기본값: all (모든 로그 출력)예: -tail 100 (마지막 100줄만 출력)5. -timestamps, t로그 메시지에 ..