golang特規編譯器,預設是限定產出 os:linux arch:amd64 的程式 會編譯這個腳本的原因是因為本身是使用mac的系統, 但產出的結果是需要在linux x86_64的環境且必要包含 CGO_ENABLED=1 所以作了一個docker images來在mac環境下生產執行檔
檔案說明
├── .dockerignore // 建立docker images時要忽略的列表
├── BuildExeDockerfile // Dockerfile
├── ExeBuild.sh // [*]主要的執行腳本
├── LICENSE // LICENSE
└── README.md // 說明檔
使用方法
1. 將 .dockerignore, BuildExeDockerfile, ExeBuild.sh 三個檔案複制到 main.go 的資料夾中
2. 執行 sh ExeBuild.sh [DockerRepo] [RepoVersion] [APP_NAME]
例如 sh ExeBuild.sh searobber/golangbuilder latest app_linux.exe
3. 檢查看看是不是有app_linux.exe,上傳到測試機器上進行測試
4. 如果有其他的編譯需求可以自行修改 BuildExeDockerfile 裡的建立參數
備註:
BuildExeDockerfile 中
# final stage
以下的部份是為了縮減 docker image 的容量而作的,如果不需要可以註解掉並且打開
# final stage 上方的
# CMD ["cp", "${APPNAME}", "/Source/${APPNAME}"]