找不到主模块;请参阅"转到帮助模块"



我正在构建一个Wasm应用程序,为了编译它,我有一个shell脚本。 当我从终端手动运行它时,我有以下内容:

/app/Go/assets$ ./script.compile.wasm.sh 
Wasm compiled

该文件的内容是:

#!/bin/sh
GOOS=js GOARCH=wasm go build -o ./app.wasm ./wasm.go
echo "Wasm compiled"

wasm 文件已正确编译。

但是当我从 Docker 运行它时,我得到:

Step 15/20 : RUN ./assets/compile.wasm.sh
---> Running in 38dd56259b0f
go: cannot find main module; see 'go help modules'
Wasm compiled

编译失败。

Docker 系列如下所示:

RUN ./assets/compile.wasm.sh

在本地情况下,您从assets目录启动脚本;在 Dockerfile 的情况下,您从其父目录启动它。 这很重要,因为当脚本引用像./wasm.go这样的文件时,这些文件是相对于当前目录而不是包含脚本的目录解析的。

您可以通过确保您也位于 Dockerfile 的assets目录中来解决此问题:

# Only for this command; will reset afterwards
RUN cd assets && ./compile.wasm.sh
# For this and all following commands, unless reset with another WORKDIR
WORKDIR /app/Go/assets
RUN ./compile.wasm.sh

相关内容

  • 没有找到相关文章

最新更新