최근 몇 년 동안 Golang은 점점 더 인기 있는 언어가 되었고 그 응용 프로그램이 점점 더 널리 보급되어 많은 개발자의 관심을 끌고 있습니다. 그러나 Golang을 처음 접하는 개발자에게는 배포와 디버깅이 해결하기 어려운 문제입니다. 이 기사에서는 Golang의 배포 및 디버깅 방법을 자세히 소개합니다.
1. 배포
Golang은 컴파일된 언어이므로 작성된 코드를 실행하려면 먼저 실행 파일로 컴파일해야 합니다. 컴파일 방법에는 정적 컴파일과 동적 컴파일의 두 가지가 있습니다. 정적 컴파일은 프로그램에 필요한 라이브러리를 실행 파일로 패키지화합니다. 실행 파일은 크기가 더 크지만 런타임 시 외부 라이브러리에 의존할 필요가 없지만 동적 컴파일에는 런타임 시 라이브러리 파일의 동적 링크가 필요합니다. 실행 파일의 크기는 더 작지만 외부 라이브러리에 대한 의존성이 필요합니다.
정적 컴파일:
$ go build -o main main.go
동적 컴파일:
$ go build -o main main.go -ldflags "-linkmode=external"
그 중에서 -linkmode=external 매개변수는 동적 연결에 필요한 라이브러리 파일을 나타냅니다.
Golang에서는 기본 패키지 관리 도구가 go mod이므로 코드 저장 경로와 다운로드 소스를 지정하려면 환경 변수를 설정해야 합니다. Linux 시스템에서는 ~/.bash_profile 파일을 수정하여 환경 변수를 설정할 수 있습니다.
export GO111MODULE=on
export 공화당 GOSUMDB는 다운로드한 코드 패키지가 정식 출시 버전인지 확인하는 것을 의미합니다.
Docker
WORKDIR /app
COPY .RUN go build -o main .
CMD ["/app/main"]
그 중 FROM WORKDIR은 작업 디렉터리를 지정하고, COPY는 현재 폴더의 파일을 이미지에 복사합니다. CMD는 실행 명령을 지정합니다.
$ docker run -p 8080:8080 myapp
그 중 -t는 레이블 이름을 지정하고 -p는 포트 매핑을 지정합니다.
디버깅 도구
"net/http" _ "net/http/pprof"
go func() { http.ListenAndServe("0.0.0.0:6060", nil) }() // your code here
디버거
(gdb) break main.main
(gdb) run
중단점을 예로 들어 실행이 중단점에 도달하면 실행을 멈추고 디버깅 모드로 들어갑니다.
위 내용은 Golang 배포 및 디버깅 방법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!