코드베이스를 푸는 대신 Go 웹 서비스 바이너리를 Cloud Foundry에 배포/푸시 할 수 있습니까? 그러면 어떻게 할 수 있니? 나는 관련있는 것을 찾으려고 노력했지만 아무 것도 찾을 수 없었습니다. 이동에 대한 사전GoLang 웹 프로젝트 바이너리를 CloudFoundry로 푸시
답변
우리가 배포 할 수 있습니다/우리의 GO 웹 서비스 CloudFoundry 이진, 대신 밀어 코드베이스를 밀어가 구축?
예. 호환되는 방식으로 컴파일되고 모든 라이브러리 종속성 (루트 파일 시스템에 포함되지 않음)과 함께 제공되는 한 모든 바이너리를 푸시 (push) 할 수 있습니다. 호환되는 바이너리를 작성하는 것은 종종 까다로운 부분이지만, Golang 앱의 경우에는 그렇게 힘들지 않을 것이라고 생각하지 않습니다.
어떻게하면 될까요?
Go 빌드 팩을 사용하지 마십시오. 그것은 코드를 기대하고 당신을 위해 그것을 컴파일하려고합니다.
대신 Linux 시스템, VM 또는 w/Docker에서 평소와 같이 빌드하십시오. 최상의 호환성을 위해서는 CF 플랫폼의 스택과 일치하는 시스템을 사용하십시오 (참조하려면 cf stacks
을 실행하십시오). 작성 당시의 기본 스택은 Ubuntu 14.04 Trusty를 기반으로하는 cflinuxfs2
입니다. cloudfoundry/cflinuxfs2
도커 이미지를 사용할 수도 있습니다.
그런 다음 바이너리 빌드 팩을 사용하여 결과 바이너리를 푸시합니다.
https://docs.cloudfoundry.org/buildpacks/binary/index.html
예 : cf push -b binary_buildpack -c './my_binary_name'
는 또한, 바이너리이있는 폴더/경로를 표시하기 위해 다른 cf push
는 현재 디렉토리에서 모든 것을 보내드립니다 -p
을해야 할 수도 있습니다.
에서
감사합니다, 당신은 다른 응용 프로그램과 클라우드 파운드리로, 바이너리 코드가 아닌 밀어 넣습니다.
여기에 Go에 sample app이 있습니다. Concourse 파이프 라인을 사용하여 앱을 만들고 푸시하는 방법을 보여줍니다. CD/CD 측면을 건너 뛸 수 있습니다. 코드를 컴파일하고 cf push
하십시오.
여기에 도움이 될 수 있습니다 또 다른 예입니다 https://blog.anynines.com/how-to-deploy-a-go-app-on-anynines-and-cloud-foundry/
내가 틀렸다면'cf push'는 전체 코드베이스를 push하고 CF와 같은 코드를 컴파일한다. 자바와 달리 머신과 OS 아키텍쳐와 플랫폼에 의존적 인 바이너리를 만든다. 그래서 나는 맥에서 컴파일하고 푸시한다. CF로 이진, 어떻게 작동할까요? @askX – kamal
이 링크를 참조하십시오 https://docs.cloudfoundry.org/devguide/deploy-apps/deploy-app.html#intro 전체 코드베이스를 배포합니다. – kamal
준비 과정을 앱 편집과 혼동시킬 수 있습니다. 'cf push'에서, 아카이브 세부 정보 (jar, war, zip 또는 폴더 위치)와 선택적으로 사용할 buildpack을 전달합니다. 관련없는 파일과 아티팩트는 업로드에서 제외됩니다. Cloud Foundry는 준비 프로세스의 일부로 필요에 따라 런타임 종속성을 다운로드합니다 (예 : nodejs apps, 패키지 다운로드). 스테이징 프로세스 흐름 https://docs.pivotal.io/pivotalcf/1-9/concepts/how-applications-are-staged를 참조하십시오.html –