如何在没有 gcc 编译器的情况下在 docker 中打包和发布一个简单的 c 应用程序?

拉克什·查哈尔

我有一个小的 c 程序应用程序,我想为此构建一个 docker 映像并将其推送到 docker hub 并在任何平台上访问。我想在 50MB 的图像大小内实现这一点。即应该能够打包 c 应用程序并在没有 GCC 编译器的情况下运行它。

拜托,如果有人能建议一种方法来构建 50MB 大小的图像,那将是一个很大的帮助。即没有 GCC 编译器,这是 C 程序编译的依赖项。

另外,建议哪个是最适合 c 应用程序的基础映像。

注意:为了构建 docker 镜像,我使用 windows 作为 docker 的主机操作系统。注意:这是一个基本的 c 程序,用于添加我想要打包和运送的两个数字。

我已经尝试为 c 应用程序创建一个大小为 307MB 的 docker 映像。我的目标是为 c 应用程序构建一个小于 50MB 的 docker 镜像

我的码头档案:

FROM busybox

COPY --from=rakeshchahar/rc-docker:my-image /usr/src/myapp usr/src/app/

WORKDIR /usr/src/app/

CMD ["./myapp"]  

我希望构建大小为 50MB 或更少的映像,并希望在任何平台上访问它。

阿迪

您可以使用小于 5MB 的 Alpine,在多阶段构建的情况下,您可以获得5MB的相同奖励

FROM alpine as build-env
RUN apk add --no-cache build-base
WORKDIR /app
COPY . .
# Compile the binaries
RUN gcc -o hello helloworld.c
FROM alpine
COPY --from=build-env /app/hello /app/hello
WORKDIR /app
CMD ["/app/hello"] 

helloworld.c 或替换为您自己的

# include <stdio.h>
  int main(){
   printf("Hello World!");
   return 0;
}

另一种将编译后的代码复制到您的图像的方法,该图像也只有5MB

FROM alpine:latest
RUN mkdir -p /app
COPY hello /app
WORKDIR /app
CMD ["/app/hello"] 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Mac上没有Moby鲸鱼应用程序的情况下在终端中激活Docker 1.12

我可以在没有nvcc编译器的情况下在C中执行内核功能吗

如何在没有Storyboard的情况下在Xcode中创建一个空应用程序

如何在没有root权限的情况下在空的ubuntu中具有有效的编译器

如何在没有任何窗口(.exe)的情况下从其安装文件中静默安装另一个应用程序?C#

如何在没有服务器的情况下在多个设备中的同一应用程序之间共享数据库

如何在不冻结应用程序的情况下在 C# 桌面应用程序中快速处理多个文件

如何在没有电子打包程序的情况下更改电子应用程序图标?

如何在没有过多负载的情况下在我的应用程序中显示日期?

如何在没有窗体或控件的情况下在 Winform 应用程序中调用 UI 线程?

Azure DevOps:如何在没有devops主菜单的情况下在自己的应用程序中显示Wiki页面?

如何在没有docker(或任何其他)容器的情况下,在Windows 10中使用sonarqube来分析Node应用程序?

如何在没有默认边框的情况下移动 c# 表单应用程序

如何在商店中没有应用程序的情况下配置应用程序剪辑

如何在没有博览会的情况下发布 React Native 应用程序?

编译器错误:在这种情况下仅在使用c ++ 17的gcc9上是私有的

我的应用程序如何在没有 Web 服务器的情况下发布到 WWW?

如何在给定类型和名称的情况下在编译器中查找方法?

如何在eclipse中没有main方法的情况下运行JavaFX应用程序?

如何从Ruby on Rails Web应用程序调用GCC编译器?

如何从我的 qt 应用程序运行 gcc 编译器?

如何在不使用“代号一个iOS证书向导”的情况下在Apple Store上发布一个代号一个应用程序?

如何在没有编译器的情况下获得简单的Makefile教程

如何在不使用GCC中的limit.h头文件的情况下编译C程序?

在没有存储库访问的情况下在Groovy应用程序中包含依赖项

在没有OnClickListener的情况下在Android应用程序中检索Firebase数据

我可以在没有应用程序的情况下在Chrome中访问USB HID吗?

如何在Docker中使用静态OpenCV库编译C ++应用程序

C - 如何 (*(void (*)()) 代码); 在没有任何调用的情况下在 C 程序中运行