Tag: dockerfile

为Docker容器创build共享包caching文件夹

我写了一个ASP.NET Core应用程序,它应该使用docker在一个容器中运行。 这工作,但孔build造过程相对较慢。 主要瓶颈似乎是nuget。 引用了很多软件包,并且需要时间从互联网加载它们。 这是在docker alwas启动一个新的容器之后的每个构build中完成的。 我的想法是在存储包的主机上创build一个持久字典。 所以他们不需要在每一个构build中获取。 dotnet restore有一个参数–packages我可以定义一个caching目录的包。 但为此,它需要将共享字典传递给docker build命令。 我发现docker run有一个-v参数,我可以通过/主机/path:/容器/path共享从主机到容器文件夹。 但这只适用于docker run ,而不是docker build 。 另外COPY命令不适合在这里,因为它让我只从主机复制文件到容器。 首先,我不得不相反地复制(容器到主机)。 那么我怎样才能创build一个不能与容器一起处理的caching目录呢? 我发现了类似的问题。 它的composer php在那里,但是持久caching目录的问题是一样的。 他们在docker run上使用-v参数。 但我不明白如何解决这个问题:在我的理解docker,docker文件应该build立应用程序。 这包括安装诸如用于ASP.NET Core的NuGet-Packages和类似的依赖项。 所以这应该在dockerfile中发生,而不是在运行容器时发生。

由于NoClassDefFoundError,无法启动embedded容器

我的SpringBoot应用程序与Eclipse IDE很好地工作,但是当我在Docker Container上运行我的应用程序时,它的图像生成良好,但是当我运行图像时,它将得到ClassDefnotfoundexception并且无法启动embedded容器。 How can I fix it?` In Dockerfile FROM java:8 EXPOSE 8080 ADD /target/docker.ras.jar docker.ras.jar RUN sh -c 'touch /docker.ras.jar ENTRYPOINT ["java","-jar","docker.ras.jar"] In pom.xml i also use maven plugin <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>example.docker.ras</groupId> <artifactId>docker.ras</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.3.RELEASE</version> </parent> <name>docker.ras</name> <url>http://maven.apache.org</url> <properties> <java.version>1.8</java.version> <start-class>docker.ras.App</start-class> <docker.image.prefix>springio</docker.image.prefix> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> […]

如何使用webpack在Docker容器中启动生产应用程序?

感谢您浏览此页面。 希望你会留下任何评论,这可能对我有帮助。 我有一个React + Redux和Webpack(使用Webpack开发服务器的课程)的应用程序。 我已经尝试了好几次在Docker容器的端口8004:8080上启动它,但不能这样做,不知道为什么。 我的目的是在我的Docker机器上启动许多站点,但首先我需要在本地机器上testing它。 这就是为什么我用这个代码使用docker-compose.yml文件的原因: version: '2' services: mysql: build: mysql/ restart: always volumes: – db_data:/var/lib/mysql container_name: mysql vshvetsov: depends_on: – mysql build: vshvetsov/ ports: – 8000:80 restart: always container_name: vshvetsov translators: depends_on: – mysql build: translators/ ports: – 8001:80 restart: always container_name: translators oral: depends_on: – mysql build: oral/ ports: – […]

如何在Docker上运行任何exe应用程序

当我构build并运行我的图像时,我正面临着问题。 这里是我的docker文件代码。 FROM microsoft/nanoserver MAINTAINER sagar@gmail.com COPY name.exe /bin/ ENTRYPOINT ["name.exe/bin"] CMD ["/bin/name.exe", "input1", "output"] build立我使用这个: docker build -t my name . 当我build立它显示成功,但是当我运行这个不给任何输出或任何错误。 我也尝试过与其他基本图像。

构builddocker for Python的最佳实践 – 需求文件或单独安装

我正在尝试为我的Python / Django应用程序创build一个docker镜像。 哪种方法最好遵循? 1.使用需求文件 ADD requirements.txt /code/requirements.txt RUN pip install -r requirements.txt OR 2.单独安装包装 RUN pip install package1 package2 package3 RUN pip install package4 package5 我发现第二种方法的一个好处是caching可以重新使用。 每一个新的pip安装行都会在新版本发布时添加,也就是说,一个发行版在pip安装包上最多只有一行。 我觉得第一种方法会使caching失效,因为在添加新的包时需求文件将会改变,并且所有的包都被重新安装。 你更喜欢哪种方法?

等待Docker容器准备就绪

我有以下docker-compose.yml : version: '2' services: server: build: . command: ["./setup/wait-for-postgres.sh", "tide_server::5432", "cd /app", "npm install", "npm run start"] ports: – 3030:3030 links: – database depends_on: – database database: image: postgres environment: – "POSTGRES_USER=postgres" – "POSTGRES_PASSWORD=postgres" – "POSTGRES_DB=tide_server" ports: – 5432:5432 我试着按照这个教程 ,使用下面的shell脚本来确定postgres何时准备好。 #!/bin/bash # wait-for-postgres.sh set -e host="$1" shift cmd="$@" until psql -h "$host" -U […]

用Docker运行meteor应用程序

我试图创build一个Dockerfile来运行,并最终build立/运行我的meteor应用程序。 我使用https://github.com/meteorhacks/meteord和我的Dockerfile看起来像这样: FROM meteorhacks/meteord:devbuild 根据他们如何build立一切,应该是你需要做的。 当我运行docker build -t docker/my-app . 这是输出的样子: 我无法弄清楚什么是错误的,或者是否有更好的方法来做到这一点。 此外,如果任何人有任何其他的想法如何build立一个meteor应用程序的持续集成(触发构build和运行构build),我很高兴听到这些是什么(没有这是不是在银河主办)。

使用docker来编写一个远程映像,使用本地代码库进行*开发*

我一直在阅读本教程: https://prakhar.me/docker-curriculum/ 以及其他教程和Dockerdocker,我仍然不完全清楚如何执行此任务。 问题 我的本地机器运行的是Mac OS X,我想为python项目build立一个开发环境。 在这个项目中,我需要从bamos/openface repo bamos/openface运行api。 该项目也有一些依赖,如yaml等。如果我只是将我的本地安装到openface ,即: docker run -v path/to/project:/root/project -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash 然后我需要安装yaml和其他依赖项,每次我退出容器时,安装都会丢失。 另外,由于某种原因,速度也慢得多。 所以正确的做法是使用Docker撰写,但我不知道如何从这里开始。 UPDATE 在回应评论时,我现在将更新问题:现在我的Dockerfile看起来像这样: FROM continuumio/anaconda ADD . /face-off WORKDIR /face-off RUN pip install -r requirements.txt EXPOSE 5000 CMD [ "python", "app.py" ] 由于我的很多代码会使用numpy和scipy,所以我从anaconda构build是非常重要的。 现在我也需要bamos/openface ,所以我试着把它添加到我docker-compose.yml文件中: version: '2' services: web: […]

Docker:如何依靠本地数据库而不是数据库泊坞窗容器?

总的来说:我不希望我的django应用程序依靠一个docker容器作为我的分贝。 换句话说,当我运行一个图像 docker run -p 8000:8000 -d imagename 我想知道连接到我的本地数据库。 我有我的settings.pyconfiguration为连接到PG数据库,所以一切都很好,当我做类似的事情 python manage.py runserver 随时调用任何不正确的使用某些条款或只是我对docker的整体理解。 所以从我看到的所有教程中,他们通常会创build一个依赖于db-image的docker撰写文件,这个文件将会放在与web应用程序分开的容器中 。 我已经经历的事例: https : //docs.docker.com/compose/django/#connect-the-database,http ://ruddra.com/2016/08/14/docker-django-nginx- postgres /等。在这一点上,我非常失落,因为我不知道我是否在Dockerfile,settings.py或docker-compose.yml中执行此操作(我猜我不应该甚至有这个,因为这是一个多容器的应用程序,我试图避免)。 [另外:最后,只有一个容器能运行一个django应用程序依赖于芹菜和rabbitmq吗? 就像我的pg例子,我只能看到它们都在单独的容器中的实例。]至于我的Dockerfile,这几乎是这样的。 FROM python:3 ENV APP 'http://githubproj` RUN git clone $APP \ && cd $APP/projectitself \ && pip install -r requirements.txt CMD cd $APP_DIR/mydjangoproject && gunicorn mydjangoproject.wsgi:application –bind 0.0.0.0:8000

高级Docker和Dockerfile卷/书写理解

我正在开发一个Maven项目,并在这个项目中使用Junit进行testing。 我是新来的docker,我想写一个Dockerfile,生成一个图像,创build一个容器,运行时,执行testing,并输出在target/failsafe-reportsfind的XML结果(Maven插件的输出文件夹总结了Junittesting的结果)。 我一直在尝试使用像Dockerfile参考和pipe理容器中的数据的链接。 我的导师编写了一个使用docker run -it –rm –name containerName -v "$PWD":/usr/src/tests -v /Users/theUser/.m2:/root/.m2 -w /usr/src/tests maven:3.5-alpine mvn clean verify来实现这一点的命令行docker run -it –rm –name containerName -v "$PWD":/usr/src/tests -v /Users/theUser/.m2:/root/.m2 -w /usr/src/tests maven:3.5-alpine mvn clean verify 。 上面的行在我的项目的根目录中(在pom和Dockerfile所在的位置)被调用,所以$PWD引用了我的项目的根目录。 我的问题是在Dockerfile中可以自动完成多less工作? 在我使用和运行Dockerfile的尝试中,我没有能够得到任何写有当前Dockerfile的东西。 FROM maven:3.5-alpine COPY ["./", "/usr/local/tests"] VOLUME /usr/local/tests/target/failsafe-reports ENTRYPOINT mvn -f /usr/local/tests/pom.xml verify 我用docker build . -t imageName构build它docker […]