stagex/makeGNU make Docker镜像是包含GNU make工具的容器化版本。GNU make是一款经典的构建自动化工具,通过解析Makefile(包含构建规则和依赖关系的文本文件),自动执行编译、链接、打包等命令,实现程序组的高效维护和构建流程自动化。该镜像旨在提供标准化的make运行环境,消除因主机系统中make版本或依赖库差异导致的构建不一致问题,简化跨平台和团队协作中的构建流程。
make all、make clean),执行对应规则组;若未指定目标,默认执行Makefile中的第一个目标。CC=gcc)、模式规则(如%.o: %.c)、条件判断(ifeq)、内置函数(如wildcard、patsubst)等高级功能。从Docker Hub拉取官方GNU make镜像(以latest标签为例):
bashdocker pull gnu/make:latest
在项目根目录(包含Makefile的目录)下,运行以下命令挂载当前目录到容器中,并执行make:
bashdocker run --rm -v $(pwd):/app -w /app gnu/make:latest make [目标]
--rm:容器退出后自动删除,避免残留容器文件。-v $(pwd):/app:将本地当前目录($(pwd))挂载到容器内的/app目录。-w /app:设置容器的工作目录为/app,确保make在挂载的项目目录中查找Makefile。[目标]:可选,指定Makefile中的构建目标(如all、clean、install),若不指定则执行第一个目标。创建测试用Makefile(保存为Makefile):
makefileall: hello hello: hello.o gcc -o hello hello.o hello.o: hello.c gcc -c hello.c clean: rm -f hello hello.o
创建hello.c文件:
c#include <stdio.h> int main() { printf("Hello, GNU make!\n"); return 0; }
运行容器执行构建:
bashdocker run --rm -v $(pwd):/app -w /app gnu/make:latest make all
执行后,本地目录生成hello.o和hello可执行文件。运行清理命令:
bashdocker run --rm -v $(pwd):/app -w /app gnu/make:latest make clean
通过-e参数传递环境变量供Makefile使用:
bashdocker run --rm -v $(pwd):/app -w /app -e CC=gcc-11 gnu/make:latest make
使用-f参数指定非默认名称的Makefile:
bashdocker run --rm -v $(pwd):/app -w /app gnu/make:latest make -f MyCustomMakefile
在.github/workflows/build.yml中添加步骤:
yamljobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run make with Docker run: docker run --rm -v $(pwd):/app -w /app gnu/make:latest make all
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务