CI 묻고 답하기

제목 Dockerfile의 ENV 및 k8s env 속성으로 codeigniter4 .env 파일에 환경변수 전달 방법을 알고 싶습니다.
카테고리 CI 4 관련
글쓴이 의붓집토토로 작성시각 2021/10/19 01:18:09
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 9947   RSS

안녕하세요. 포럼, 메뉴얼 및 질문글에서 한참 찾아보았지만, 도저히 답이 보이지 않아 여기에 글을 올려보게 되었습니다.

 

현재 k8s로 codeigniter4 프레임워크를 사용하여 공부중입니다.

 

k8s의 env 값으로 환경변수를 추가하면 codeigniter 프레임워크의 .env 파일에서 그 환경변수 값을 넣어주는 기능을 찾고 있습니다.

 

제가 해봤던 방식은 .env 파일에 ${ENV_KEY} 형식으로 넣어보았지만, 값을 가져오지 못하였습니다.

ex ) .env 파일

app.baseURL="${FRONT_DNS_URL}"

 

그리고, config/App.js 파일의 public $baseURL 변수에 직접 getenv('FRONT_DNS_URL') 함수를 사용하여 넣으려고 하였으나, 오류가 나서 실패하였습니다.

ex ) config/App.php 파일

public $baseURL = getenv('FRNT_DNS_URL');

또는

public $baseURL = env('FRNT_DNS_URL');

 

환경변수를 사용하려는 이유는, 데이터베이스 연결 정보 및 도메인 정보를 환경변수만 바꿔서 간편하게 교체처리를 하고 싶어서 입니다.

 

제가 환경변수 설정하는 방법을 잘 못 이해한 것이 아닐까 싶습니다. 혹시 도커나 k8s에서 환경변수를 가져다 사용하는 방법에 대한 조언 및 방법이나, 해당 부분에 대한 메뉴얼이 있다면 알려주시면 감사하겠습니다.

 다음글 ci3에서 쓰던 json 반환을 ci4에서는 어떻게 써... (2)
 이전글 ci4 location.href 경로 관련 질문드립니다... (4)

댓글

변종원(웅파) / 2021/10/19 08:44:13 / 추천 0

도커 실행시 특정파일(.env)을 복사해서 실행할 수 있습니다.

Dockerfile 에 ADD '로컬파일위치' '이미지내파일위치' 로 복사됩니다.

참고하세요. http://pyrasis.com/book/DockerForTheReallyImpatient/Chapter07/09

의붓집토토로 / 2021/10/19 16:52:19 / 추천 0

감사합니다. 참고해서 해결 방법을 찾았습니다.

dockerfile에 shellscript 파일을 copy 하는 구문을 추가했습니다. shellscript로 k8s yaml 파일에 설정된 env 항목을 가지고 .env 파일을 만들어서 특정 디렉토리에 생성하여 k8s deployment에서 container 배포할 때, shellscript를 실행하는 방법으로 테스트 하려고 합니다.

ci4 framework 내부에서 환경변수로 교체가 필요한 변수들만 env함수로 쉽게 바꿀 수 있을 줄 알았는데 너무 만만하게 봤네요.