번들로 제공되는 .NET Core SingleFile 게시 애플리케이션이 배포될 출력 디렉터리를 어떻게 정의하나요?

번들로 제공되는 .NET Core SingleFile 게시 애플리케이션이 배포될 출력 디렉터리를 어떻게 정의하나요?

권장되는 대로 Linux에서 .NET Core Worker Service 애플리케이션을 systemd 데몬/서비스로 배포하고 있습니다. .NET Core 애플리케이션은 일체형 exe 파일을 생성하는 SingleFile 속성을 사용하여 게시됩니다. systemd/system/myService.service 파일에서 ExecStart를 exe 파일 경로로 설정했습니다.

작동하지만 시스템을 부팅할 때마다 "추출된" exe 번들의 서비스 작업 디렉터리가 /var/tmp/.net/root/{dynamicdirectory} - 부팅할 때마다 생성되는 동적 디렉터리에 마운트되는 것을 확인했습니다.

고정된 디렉터리에 파일을 설치해야 합니다. .service 구성 옵션에서 이 기능을 제어하는 ​​옵션을 찾을 수 없습니다.

이 작업을 수행하는 방법을 아는 사람이 있나요?

답변1

귀하의 사용 사례에서는 다음을 사용하십시오.Michal Politovsky가 제공한 정보댓글에. 추출 디렉터리가 /var/tmp로 설정된 이유는 다음과 같습니다.

   DOTNET_BUNDLE_EXTRACT_BASE_DIR 

귀하에게 서비스가 제공되는 환경에는 존재하지 않습니다.

이것이 사실이기 때문에,이 환경 변수를 지속적으로 정의해야 합니다.systemd 서비스를 실행하는 사용자.

(또는환경 파일 또는 환경 정의=서비스 파일 자체의 옵션)

관련 정보