我面临一个奇怪的问题,即在使用go模块供应依赖项后,go build命令会使用随机数据覆盖main.go文件。
文件的开始看起来像这样:
����
H
H__PAGEZEROx__TEXTpxpx__text__TEXT��7�__rodata__TEXT��7Y��7__symbol_stub1__TEXT�V��V�__typelink__TEXT�V�(�V__itablink__TEXTP@V�
P@V__gosymtab__TEXT�JV�JV__gopclntab__TEXTKV
"KV�__DATApx�|px c
__nl_symbol_ptr__DATApx�pxs__noptrdata__DATA�sx���sx__data__DATA�&{���&{__bss__DATA �{��__noptrbss__DATA�}�2__DWARF�}�{�� __zdebug_abbrev__DWARF�}�{__zdebug_line__DWARF�}'W�{__zdebug_frame__DWARF;H���;8�__zdebug_pubname__DWARF�څ�K�ʃ__zdebug_pubtype__DWARF�&����__debug_gdb_scri__DWARF��6�ӄ__zdebug_info__DWARF���
�ӄ__zdebug_loc__DWARF䉑��y�__zdebug_ranges__DWARFU��ZE�H__LINKEDIT�}L���L��*�����,�r���Pu,u,x,xo�� /usr/lib/dyld8/usr/lib/libSystem.B.dylibh/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation`/System/Library/Frameworks/Security.framework/Versions/A/Security$
� Go build ID: "OLftMbjtv5aWMkI_0qrD/LhWRtD0wcaKFWRYSDOa9/7dFWcNOQ4BpWWqZQW07D/pkR9ABiz-SHIBaJIZ1ur"
����������UH��AWAVATSH���=|I��
开始版本:继续版本go1.12.5 darwin/amd64
已启用export GO111MODULE=on
的Go模块化
文件夹结构: go.mod go.sum log.go main.go供应商
仅供参考:仅main.go被覆盖,而不是log.go。
使用go mod init
初始化的Go模块
应用go mod vendor
出售的应用
不确定我是否做错了什么。任何帮助表示赞赏。
答案 0 :(得分:0)
模块名称不应为main.go,因为它是包中的文件。请在COPY test.env /
RUN export $(cat test.env | xargs)
中使用项目名称作为模块名称。
例如,如果您的项目根目录是hello,则将包命名为hello,而不是go mod init
。
另外,如果您要反复使用该模块,请考虑使用您的存储库名称作为模块名称。
Go处理包而不是单个文件。 Go模块用于组织软件包。在official documentation
中了解更多