make命令在Windows WSL Ubuntu中不起作用

时间:2020-09-14 14:13:10

标签: docker ubuntu makefile docker-compose windows-subsystem-for-linux

我正在尝试在WSL实例中的Ubuntu中构建项目。我正在使用的命令来自chirpstack-simulator项目:docker-compose run --rm chirpstack-simulator make clean build。 由于某种原因,make拒绝正常工作,或者根本拒绝工作。

我不断收到错误消息:“ make:***没有使目标“干净”的规则。停止。”

以下是Makefile代码:

VERSION := $(shell git describe --always |sed -e "s/^v//")

build:
    @echo "Compiling source"
    @mkdir -p build
    go build $(GO_EXTRA_BUILD_ARGS) -ldflags "-s -w -X main.version=$(VERSION)" -o build/chirpstack-simulator cmd/chirpstack-simulator/main.go

clean:
    @echo "Cleaning up workspace"
    @rm -rf build
    @rm -rf dist
    @rm -rf docs/public

docker-compose.yml代码:

services:
  chirpstack-simulator:
    build:
      context: .
      dockerfile: Dockerfile-devel
    command: make
    volumes:
      - ./:/chirpstack-simulator

以及Docker-devel文件:

FROM golang:1.13-alpine

ENV PROJECT_PATH=/chirpstack-simulator
ENV PATH=$PATH:$PROJECT_PATH/build
ENV CGO_ENABLED=0
ENV GO_EXTRA_BUILD_ARGS="-a -installsuffix TDM-GCC-64"

RUN apk add --no-cache ca-certificates tzdata make git bash

RUN mkdir -p $PROJECT_PATH
COPY . $PROJECT_PATH
WORKDIR $PROJECT_PATH

如您所见,build和clean均已定义。有人遇到过这个问题吗?

编辑: 这是我要构建的完整项目 https://github.com/brocaar/chirpstack-simulator

以及更多详细信息: 我尝试做 sudo apt-get remove make sudo apt-get install make 然后 sudo apt-get install --reinstall build-essentials 它仍然在显示错误。

Ubuntu的版本为16.04 LTS,如果它有助于缩小范围

1 个答案:

答案 0 :(得分:0)

我至少将make命令替换为ls -larth,以确保docker-compose run ls -alrth确实在其执行上下文中显示Makefile

如果没有,则任何make命令都会失败,并显示您提到的错误消息。