Tag: 编译

在docker环境中使用命令行应用程序的最佳方式是什么?

为了编写通过端口通过networking暴露的服务( -p 5000:5000 ),docker提供了各种帮助(例如docker-compose )。 我正在寻找的是一种在docker集装箱中提供某些二进制应用程序作为服务的方法。 例子是: 编译器(例如gcc) 生成器(例如用于协议缓冲器) … 运行一个命令 我目前的做法是有一个小的shell脚本传递参数,负责映射当前目录: runbox(){ current_dir=${PWD##*/} docker run –rm -it \ -v ${PWD}:/home/dev/${current_dir} \ -w /home/dev/${current_dir} \ box:latest \ /bin/bash -c "$@" } 使用它看起来像这样: runbox "g++ –version" 与本地运行相比: g++ –version 组成多个命令 现在让我们说,我有这样的服务,我怎么把它们组合起来,使它们都可以在另一个容器中使用(例如在一个ci上运行)? Services running in Docker containers +———————+ | | +———+ | CI Docker Container +—–> | […]

为ARM-64架构构builddocker

我一直在尝试为ARM-64架构编译docker。 Docker不正式支持ARM 64位(至less不是通过包pipe理工具); 因此我必须从源头上构build它。 build设docker二进制集需要docker本身作为依赖。 我已经设法通过以下(hack)命令编译docker守护进程和客户端: ./hack/make.sh dynbinary 不过,我还没有成功地运行它。 这两个二进制文件编译和工作,但是当我想启动守护进程它抱怨其他依赖项: Failed to connect to containerd. Please make sure containerd is installed in your PATH or you have specified the correct address. Got error: exec: "docker-containerd": executable file not found in $PATH 正如我前面提到的,我不能构build所有的二进制文件,因为它们需要docker本身运行。 期待您的帮助。

全局改变编译命令

我使用Emacs与Docker进行开发。 Emacs在主机上运行一个包含代码的容器,在Docker容器内执行,testing等等。 我开始编辑一些Emacs模式并添加variables,以允许docker作为命令前缀。 因此,使用.dir-locals我可以在Docker容器中运行类似rspec命令。 但是我必须改变rspec-mode的代码才能到达那里。 我见过的所有模式都有共同点,那就是使用Emacs的compilefunction来运行它们的命令。 所以我想知道是否有机会全局扩展compile函数或者comint中的任何东西来添加一个前缀来运行通过Docker内部编译启动的每个外部命令。 例如rspec将被转换为docker-compose exec app rspec 。 理想情况下,这将在一个.dir-locals来完成,以允许项目特定的前缀。 这将导致一个更通用的解决scheme,它应该适用于任何模式而无需更改其代码。 它不会受限于Docker,而是支持任何环境,其中一些模式需要一个特殊的前缀到他们的命令。 不幸的是,我不知道如何得到这样的东西。

docker不能编译程序(可能未被macrosAC_MSG_ERRORmacros)

我正在尝试在Docker容器中编译下面的程序。 https://github.com/adaptivecomputing/torque 当试图运行autoconf我给错误“可能未定义的macros:AC_MSG_ERROR” 谷歌有几十个这个确切的错误的结果。 他们大多数是通过安装pkg-config或libtool-ltdl来解决的 从docker文件中可以看到,这两个软件包都已经安装。 FROM centos RUN yum install -y autoconf make autogen gcc gcc-c++ openssl-devel git libxml2-devel libtool libtool-ltdl RUN git clone git://github.com/adaptivecomputing/torque.git -b 4.2.6.1 /tmp/pbs_server RUN cd /tmp/pbs_server RUN autoconf RUN ./configure –with-debug RUN make -j4 RUN make install 这是运行docker build .时得到的错误docker build . Step 4 : RUN autoconf configure.ac:50: error: […]

Docker Containers作为编译和运行沙箱的性能下降

我正在尝试使用下面的github项目来允许用户在线编译和运行程序。 https://github.com/remoteinterview/compilebox 它成为一个项目的直接开箱即用解决scheme,整个代码和configuration非常易于理解和configuration。 不过,我现在正在得到一个性能问题。 一切正常,快捷如果我一次只从一个浏览器运行一个程序。 但是,如果多个用户(最多30个)尝试在单个实例上运行一段“Hello World”Java代码,则容器增加的响应时间可能会增加2-3分钟,而且许多用户会遇到一个更真实的情况。 我想知道如果我缺less一些configuration调整docker或硬件级别的限制? 以下是我的硬件configuration处理器:Core-i5 3.0 Ghz Ram:总共12 Gb(平均8GB免费) 运行5个容器时,CPU负载约为50%。 控制CPU共享并将其设置为512只会使其最差。

我应该编译我的应用程序里面的一个Docker镜像

尽pipe大多数时候我正在开发Java应用程序,并且只是简单地使用Maven,所以我的构build应该是可重复的(至lessMaven所说的)。 但是,如果你正在编译一个C ++程序或更复杂的东西,你应该build立在docker? 或者理想地使用stream浪者或其他技术来生产可复制的版本。 你如何pipe理docker重复生成?