Tag: dockerfile

Docker SSHlogin远程失败

我在运行SSH服务的AWS服务器中创build了一个docker。 我依靠以下示例: https ://docs.docker.com/engine/examples/running_ssh_service/并将我自己的逻辑添加到Dockerfile。 当试图远程login到docker时,我得到提示的密码信息,但是我为SSH用户设置的密码不起作用。 当使用本地ssh连接(从AWS服务器到127.0.0.1 -p exported_SSH_port)尝试完全相同的密码时,它可以正常工作。 有任何想法吗?

如何安装在docker上运行的elasticsearch的xpack?

我正在尝试在ELK-Stack上安装xpack。 我会用3个Dockerfiles来做这个。 在这个时候,我的Dockerfile看起来像这样: # Orginal Image von elasticsearch laden FROM docker.marksys.de/elasticsearch:latest USER root ADD ./x-pack-5.5.2.zip /usr/share/elasticsearch/plugins RUN bin/elasticsearch-plugin install file:///usr/share/elasticsearch/plugins/x-pack-5.5.2.zip/ RUN elasticsearch 每一次,当我build立一个图像的Dockerfile,生成过程停在这里: Exception in thread "main" java.lang.IllegalStateException: Could not load plugin descriptor for existing plugin [x-pack-5.5.2.zip]. Was the plugin built before 2.0? at org.elasticsearch.plugins.PluginsService.getPluginBundles(PluginsService.java:334) at org.elasticsearch.plugins.InstallPluginCommand.jarHellCheck(InstallPluginCommand.java:518) at org.elasticsearch.plugins.InstallPluginCommand.verify(InstallPluginCommand.java:500) at org.elasticsearch.plugins.InstallPluginCommand.install(InstallPluginCommand.java:543) at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:217) at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:201) […]

如何通过docker run将本地文件作为parameter passing?

我有一个像这样的Dockerfile: FROM python:3.6 RUN mkdir /code COPY dist/python-0.1.0.tar.gz /code WORKDIR /code RUN pip install python-0.1.0.tar.gz ENTRYPOINT ["post"] “后”命令运行我的代码罚款没有参数。 我的问题是如何获得docker容器除了在运行时的本地文件,因为它可能会改变。 这里是我的命令,运行脚本,但是说没有这样的文件或目录data / output.xml docker run container data/output.xml 我也尝试过,没有运气 docker run -v data:/data containter /data/output.xml 感谢您的任何帮助!

服务运行,可以通过docker-compose ping但容器A看不到容器B?

我正在运行一个节点应用程序(容器A),通过在Mac上的Docker运行一个快速微服务依赖项(容器B)。 容器A的Dockerfile FROM node WORKDIR /usr/src/app COPY package.json package-lock.json ./ RUN npm install COPY . . EXPOSE 9000 CMD [ "node", "server.js" ] 容器B的Dockerfile FROM node WORKDIR /usr/src/app COPY package.json package-lock.json ./ RUN npm install COPY . . EXPOSE 3000 CMD [ "node", "server.js" ] 泊坞窗,compose.yml version: '3' services: containerA: build: . ports: – '127.0.0.1:9000:9000' […]

Docker无法为RoR应用程序提供GEMFILE文件

我试图在Windows 10上使用Docker Toolbox运行Ruby on Rails应用程序。 我在文件夹E:\项目中有docker-compose.yml文件,内容如下: version: '3' services: expertiza: image: winbobob/expertiza:ruby-2.2.7 ports: – '3000:3000' volumes: – '.:/expertiza' depends_on: – scrubbed_db – redis links: – scrubbed_db – redis working_dir: /expertiza command: bundle exec thin start -p 3000 environment: REDIS_HOST: redis scrubbed_db: image: mysql:5.7 volumes: # https://stackoverflow.com/questions/25920029/setting-up-mysql-and-importing-dump-within-dockerfile – '/expertiza/db:/docker-entrypoint-initdb.d' environment: MYSQL_ROOT_PASSWORD: ********* redis: image: redis:alpine 所有与应用程序相关的文件都位于文件夹E:\ […]

将envvariables传递给DOCKER Spring Boot

我有一个SpringBoot应用程序,它的Dockerfile如下。 我有不同的环境,如本地/ dev / qa / prod的application.properties。 当我在IDE中本地运行应用程序时,我在VM选项中传递了-Dspring.profiles.active = local ,以便加载application-local.properties。 作为docker容器运行,我构build了一个包含所有application.properties的图像。 即,对于所有的环境,它只是相同的泊坞窗图像。 当我在一个环境中运行映像时,我想以某种方式让SpringBoot了解它的开发环境,所以它必须加载application-dev.properties。 我正在使用AWS ECS来pipe理容器。 FROM openjdk:8-jdk-alpine VOLUME /tmp ADD target/sample-test-sb-sample-app-1.0-exec.jar app.jar EXPOSE 8080 ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

Docker的mysql问题

我读过最近的post设置MySQL和导入转储在Dockerfile中,但无法find答案。 我想要的是build立与创build的数据库,用户和其他一些数据的自定义MySQL映像。 这是我的Dockerfile(简体): FROM mysql:5.7 ENV MYSQL_ROOT_PASSWORD=root RUN service mysql start && \ mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "CREATE DATABASE mydb;" && \ mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "SHOW databases;" && \ service mysql stop ENTRYPOINT service mysql start && /bin/sh 图像已成功构build,mydb数据库被列为“SHOW DATABASES”的输出。 但是,当我运行容器基于这个图像,我看到根密码是空的,并且mydb数据库丢失。 我该如何解决这个问题? 谢谢?

docker nginx容器无法启动

这是我的Dockerfile FROM nginx EXPOSE 8080 CMD ["nginx", "-g", "daemon off;"] 我使用docker build . 然后docker run -it 603030818c86启动我的nginx容器。 但是,当我去http://localhost:8080它不给我nginx主页。 我究竟做错了什么?

使用Docker-compose将文件复制到Docker容器中的tomcat webapps文件夹

我有一个像我不得不复制几个configuration文件到docker容器内存在的tomcat webapps文件夹的场景。 这是我使用的dockerfile FROM tomcat:7.0.82-jre8 RUN apt-get update && apt-get -y upgrade WORKDIR /usr/local/tomcat COPY /app.war /usr/local/tomcat/webapps/app.war RUN apt-get update && apt-get install -y dos2unix EXPOSE 8080 COPY tomcat-users.xml /usr/local/tomcat/conf/ 一旦我们运行docker,它实际上做了以下 它实际上将app.war复制到tomcat的webapps文件夹中,并提取到一个名为“app”的文件夹 Docker将尝试启动tomcat服务器。 我想将我的configuration文件复制到tomcat webapps文件夹内的提取的war文件。 在启动tomcat服务器之前,以下是属性的位置,如tomcat_home / webapps / app / conf / services.properties 我有一个挑战,复制此属性文件到相应的文件夹启动tomcat caontainer之前。 我不知道如何使用docker-compose来做到这一点。 在docker-compose.yml中还是使用dockerfile是否真的有可能? 任何答案都是可观的。

如何使用shell脚本在dockerfile中设置环境variables的dynamic值

我的情况如下 我需要添加“项目”文件夹docker容器为生产build设,但对于开发生成我想将本地卷装载到容器的项目文件夹,例如。 ADD project /var/www/html/project 没有发展(我可以在开发中复制一个虚拟文件夹) 如果我将整个项目文件夹复制到开发中的容器中,那么项目文件夹中的任何更改都将使add命令之后的dockercaching器无效。 开发Docker镜像需要时间。 我想为这两个环境使用相同的docker文件 为了达到这个目的,我在docker文件中使用了ADD $PROJECT_DIR /var/www/html/project ,其中$ PROJECT_DIR是环境variables 在像ENV PROJECT_DIR project或ENV CONFIG_FILE_PATH dummy-folderdocker文件中设置环境variables将正确的文件ENV CONFIG_FILE_PATH dummy-folder添加到容器,但它需要我每次更改docker文件。 build造docker图像时,我也可以传递“build-arg”参数 docker build -t myproject –build-arg "BUILD_TYPE=PROD" –build-arg "PROJECT_DIR=project" . 由于variablesBUILD_TYPE和PROJECT_DIR是相关的,我想根据BUILD_TYPE设置CONFIG_FILE_PATHvariables。 这将防止我忘记更改一个参数的情况。 为了设置我写下的脚本“set_config_path.sh”的PROJECT_DIRvariables, if [ $BUILD_TYPE="PROD" ]; then PROJECT_DIR="project"; else PROJECT_DIR="dummy-folder"; fi 然后我使用dockerfile运行脚本 RUN . /root/set_project_folder.sh 这样做,set_project_folder.sh脚本可以访问BUILD_TYPEvariables,但PROJECT_DIR不反映在docker文件中 在本地机器的terminal上运行set_project_folder.sh时,PROJECT_DIRvariables被改变了,但是它不能和dockerfile一起工作 有无论如何,我们可以从子shell脚本更改环境variables,例如上面的问题中的“set_config_path.sh”? 如果可能的话,它可以在许多用例中使用,使dockerbuild设dynamic 我在这里做错了什么? 要么 有没有另外一个好方法来达到这个目的?