Questions tagged «docker»

Docker是构建和运行容器的工具。接受有关Dockerfile,操作和架构的问题。有关在生产环境中运行docker的问题可能会在ServerFault(https://serverfault.com/)上找到更好的响应。docker标签很少单独使用,通常与docker-compose和kubernetes等其他标签搭配使用。

5
如何解决Alpine docker容器内Flask应用程序的Gunicorn执行程序上引发的``OSError:libc not found''问题
我正在基于Miguel Grinberg的大型教程的Microblog应用程序开发Flask应用程序。代码位于此处:https : //github.com/dnilasor/quickgig。我有一个带有链接的MySQL 5.7容器的可运行docker实现。今天,我使用Flask-Admin模块添加了一个Admin View功能。它通过“ flask run”在Flask服务器上本地服务(OSX)上精美地工作,但是当我构建并运行新的docker镜像(基于python:3.8-alpine)时,它在启动时崩溃并出现OSError: libc not found错误,其代码似乎指示未知的图书馆 在我看来,Gunicorn无法在我添加内容后投放该应用程序。我和我的同学很沮丧! 我最初使用python:3.6-alpine基本图像得到了错误,因此尝试使用3.7和3.8无济于事。我还注意到,一旦在requirements.txt中指定了版本号,便会多余地添加PyMySQL。并再次在dockerfile中明确显示,没有任何规范。删除了requirements.txt条目。还尝试增加Flask-Admin版本号。上和下。还尝试清理数据库迁移,因为我已经看到多个迁移文件导致容器无法启动(诚然,这是在使用SQLite时)。现在只有一个迁移文件,并且基于堆栈跟踪,看起来flask db upgrade工作正常。 我尚未尝试的一件事是不同的基本映像(最少的基本映像?),可以尽快尝试并更新它。但是这个问题对我来说是如此神秘,以至于我认为是时候问其他人是否看过它了:) 我确实发现了这个似乎可能相关的套接字错误,但是应该在python 3.8中已完全修复。 此外FYI我跟着一些建议这里的圆形进口和进口我的管理控制器功能里面create_app。 Dockerfile: FROM python:3.8-alpine RUN adduser -D quickgig WORKDIR /home/quickgig COPY requirements.txt requirements.txt RUN python -m venv venv RUN venv/bin/pip install -r requirements.txt RUN venv/bin/pip install gunicorn pymysql COPY app app COPY …

2
如何禁用Docker容器中的核心文件转储
我的PHP容器运行puppeteer生成PDF。通过生成PDF文档,它还在我的容器内创建了两个核心转储文件。我不确定它们的真正来源。 主机/服务器是CentOS 7。 我检查了以下内容: 没有应用程序错误日志,Browsershot / Puppeteer正在运行,没有错误。 找不到错误日志(例如segfault) /var/log/messages 我试图禁用核心转储 通过遵循https://linux-audit.com/understand-and-configure-core-dumps-work-on-linux/的 Disable core dumps部分,我完成了: 将以下内容添加到 /etc/security/limits.conf * soft core 0 * hard core 0 通过以下方式创建了disable-core-dumps.sh: echo “ulimit -c 0 > /dev/null 2>&1” > /etc/profile.d/disable-coredumps.sh 添加了以下内容 /etc/systemd/coredump.conf [Coredump] Storage=none ProcessSizeMax=0 并重新启动服务器和容器。 我也尝试过ulimit -c 0在容器内设置(高山) 以上所有技巧都不适合我。人偶每次生成PDF时,总是会创建两个核心转储文件,如下所示: core.131 core.52 核心文件如下所示: 谁能帮我禁用核心转储?非常感谢。

3
在CI / CD管道实施中为不同租户动态管理Dockerfile
我正在尝试使用Docker,Kubernetes和Jenkins为我的项目实现CI / CD管道。我的应用程序是多租户应用程序,其中数据库应用程序变量对于不同的租户来说都是不同的。 应用策略 在构建Docker映像时,我正在使用Dockerfile。然后将Dockerfile保留在SVN代码存储库中。对于每个租户,代码存储库都是相同的。在构建映像时,那时我需要为不同的租户构建不同的映像。 Dockerfile实现 在我的docker文件中,我添加了如下入口点, ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=tenant1config" , "TestProject.war"] 如果我需要为另一个租户构建Docker映像,则需要添加 -Dspring.profiles.active=tenant2config 因此,Dockerfile中的入口点是动态的。 我的困惑 用于动态管理Dockerfile中的入口点命令吗? 还是我需要为另一个租户添加另一个Dockerfile?是否需要为单独的租户单独运行docker build命令? 我如何找到实现此问题的良好标准方法?

2
Docker&Laravel:配置:错误:未满足软件包要求(oniguruma)
谁能帮助我解决这个问题。 当我尝试从laravel应用的dockerfile创建docker镜像时,出现以下错误: 检查oniguruma ...否配置:错误:不符合包装要求(oniguruma): No package 'oniguruma' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables ONIG_CFLAGS and ONIG_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. 命令'/ bin / …

5
缺少inotify事件(在.git目录中)
我正在使用inotify事件(恰好发生在Python中,调用libc)来监视文件中的更改。 对于a期间的某些文件git clone,我看到了一些奇怪的事情:我看到一个IN_CREATE事件,并且通过ls它看到该文件包含内容,但是,我从未看到IN_MODIFY或IN_CLOSE_WRITE。因为我要IN_CLOSE_WRITE对文件做出响应,这导致了我的问题:具体来说,是启动文件内容的上载。 行为异常的文件位于.git/objects/pack目录中,并以.pack或结尾.idx。git创建的其他文件具有更规则的IN_CREATE-> IN_MODIFY-> IN_CLOSE_WRITE链(我不在监视IN_OPEN事件)。 这是在MacOS上的docker内部,但是我已经看到在远程系统上的Linux上的docker上有相同的证据,因此我怀疑MacOS方面是不相关的。如果正在观看并且git clone在同一个 Docker容器中,我会看到这个。 我的问题: 为什么这些文件上缺少这些事件? 该怎么办?具体来说,我该如何回应对这些文件的写入完成?注意:理想情况下,我想在“完成”书写时做出响应,以避免不必要地/(不正确地)上传“未完成”的书写。 编辑:阅读https://developer.ibm.com/tutorials/l-inotify/看来我所看到的与 一个单独的临时文件,其名称如tmp_pack_hBV4Alz,正在创建,修改和关闭; 将以最终名称创建到该文件的硬链接.pack; 原始tmp_pack_hBV4Alz名称被删除。 我认为我的问题是尝试使用inotify作为上载文件的触发器,然后简化为注意到该.pack文件是与另一个文件的硬链接,并且在这种情况下上载?
11 linux  git  docker  libc  inotify 

1
在Azure Data Studio中还原数据库备份时出现错误“集合被修改,枚举操作可能无法执行”
我对数据库非常陌生,因此请耐心等待。 我已经设置了在Docker容器上运行的本地SQL Server(使用Mac)。我正在尝试使用Azure Data Studio(v1.14.0)还原SQL数据库,但无法正常工作。 我在database.guide上使用了该指南,但是不断出错。我不知道这是什么意思。 还原数据库失败:集合已修改;枚举操作可能无法执行 我曾尝试从学校计算机(在PC上使用SQL Server Management Studio)上制作的备份中还原.bak文件,并尝试使用Database.guide中的bak文件进行还原。我还从当前的Azure数据库中进行了备份,并尝试还原该备份-也不起作用。

1
lsb_release:在最新的Ubuntu Docker容器中找不到命令
我只是想快速测试一下。所以我运行了一个Docker容器,我想查看我正在运行哪个版本: $ docker run -it ubuntu root@471bdb08b11a:/# lsb_release -a bash: lsb_release: command not found root@471bdb08b11a:/# 所以我尝试安装它(如此处建议): root@471bdb08b11a:/# apt install lsb_release Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package lsb_release root@471bdb08b11a:/# 有人知道为什么这不起作用吗?

1
Docker和npm-gyp错误!不好
一切都与我的客户工作,直到我试图解决一些网络断开的升级问题,react-scripts在我的docker客户服务,从3.0.1到3.3.0,使用npm install <package> --save和重新构建它。 但是随后它开始抱怨要求css-loader和style-loader,然后我安装了它们。然后它不起作用,我将设置恢复为3.0.1,同时使用--saveflag 卸载了先前的两个软件包,以便也将其删除node_modules/。 现在,当我运行时docker-compose -f docker-compose-dev.yml build client,尽管建立了客户端服务,但出现以下错误: > fsevents@1.2.11 install /usr/src/app/node_modules/chokidar/node_modules/fsevents > node-gyp rebuild gyp info it worked if it ends with ok gyp info using node-gyp@3.8.0 gyp info using node@11.12.0 | linux | x64 gyp ERR! configure error gyp ERR! stack Error: Can't find Python …
10 node.js  docker  npm 

4
Docker容器中的Wildfly无法启动
我正在尝试访问在Windows 10 Pro中的Docker容器上运行的Wildfly的欢迎页面。这是我所做的: 拉出图片: docker pull jboss/wildfly 运行Wildfly容器(这很好,在Wildfly日志中,我可以看到它已正确启动): docker run -it -p 8080:8080 jboss/wildfly 查找容器ID: docker ps 检查IP地址: docker inspect -f "{{ .NetworkSettings.IPAddress }}" cac63ed21d78 IP地址是172.17.0.2,在浏览器中,我转到http://172.17.0.2:8080/,但是浏览器挂起并超时。我想念什么? 更新 我也尝试过127.0.0.1:8080,但也不起作用 更新2 控制台日志: docker --version #Docker version 19.03.1, build 74b1e89e8a docker run hello-world #Hello from Docker! docker run --detach --publish 8080:80 --name webserver …
10 java  docker  jboss  wildfly  devops 


2
热重装不适用于webpack-dev-server和docker
使用已安装docker的Ubuntu Linux。没有虚拟机。 我已经用vuejs应用程序构建了一个docker镜像。要启用热重载,我使用以下命令启动docker容器: docker run -it -p 8081:8080 -e "HOST=0.0.0.0" -v ${PWD}:/app/ -v /app/node_modules --name my-frontend my-frontend-image 它启动正常,我可以从主机浏览器访问它localhost:8081。但是,当我对源文件进行更改并保存这些更改时,在按F5之前它们不会反映在我的浏览器中(热重装不起作用)。 以下是一些详细信息: package.json "scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", build / webpack.dev.conf.js devServer: { clientLogLevel: 'warning', ... hot: true, ... watchOptions: { //poll: config.dev.poll, //aggregateTimeout: 500, // …

2
Docker映像在Windows / MVC Core上的构建速度很慢
我有一个MVC Core 2.2,在Docker容器中有多个项目。当我运行它时,大约需要4分钟来构建图像并启动容器。我正在使用docker-compose。 考虑到这是一个很小的发展并且我有一台不错的计算机,所以这似乎很慢。似乎没有使用资源,因为在映像构建期间处理器低于8%,ram不会移动,磁盘几乎为0%。GPU 0%。下载Microsoft映像时,我可以看到互联网激增了几秒钟,仅此而已。我给了docker以下资源: Cores: 8 RAM: 8GB SWAP: 3gb Disk Image Size: 64GB (30.5 GB used) 有什么想法可以利用这些硬件资源来加快构建速度吗?


1
不能在Docker上运行JavaFX应用超过几分钟
我开发了一个用作单独Web应用程序的通信服务的应用程序。我有0个问题“正在使Web应用程序码头化”,但事实证明该服务是一场噩梦。它基于JavaFX,并且可以由用户在配置文件中设置一个属性,该属性使该属性不会使应用程序初始化任何窗口,菜单,容器等。这种“无头”模式(不确定是否真正无头...)有效地将服务应用程序变为后台服务。让我也以此开头作为开头,说该应用程序在Windows 10机器上运行时绝对可以完美运行,并且我已经将其部署在其他几台机器(所有未经过dockerized)上,没有任何问题。 这是我想出的dockerfile: FROM openjdk:13.0.1-slim RUN apt-get update && apt-get install libgtk-3-0 libglu1-mesa -y && apt-get update VOLUME /tmp ADD Some_Service-0.0.1-SNAPSHOT.jar Some_Service-0.0.1-SNAPSHOT.jar ADD lib lib ADD config.properties config.properties ENTRYPOINT ["java", "--module-path", "lib/javafx-sdk-13", "-jar", "Some_Service-0.0.1-SNAPSHOT.jar"] 然后,我使用此命令来构建容器: docker run -t --name Some_Service -e DISPLAY=192.168.1.71:0.0 -e SERVICE_HOME= --link mySQLMD:mysql some_service 假设VcXsrv在我的PC上运行,则该应用程序可以正确启动,尽管在首次启动时确实会给出以下警告: libGL error: …

2
Docker实现中的微服务
我们正在使用Amazon fargate使用Docker容器编写第一个微服务。我们对使用Spring Boot的实现水平有很多疑问 我们将在项目中拥有多个微服务,这是一种好的做法,我们将所有微服务都写在一个容器中,还是我必须为单独的微服务创建单独的Docker容器。我们以节省成本的方式使用单个容器,但是这将来会对我们的项目结构造成任何问题吗? 我们正计划在AWS fargate中部署该应用程序,并且我们的应用程序将具有很大的扩展空间,可以在将来扩展,并有望提供约100至150种不同的微服务。在这种情况下,如果我们也将所有这些微服务也上传到不同的容器中,是否具有成本效益?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.