Tag: docker dockerfile

Dockerfile:为什么不bash命令工作?

我想从一个非常简单的开始学习Dockerfile,所以这里是我的Dockfile: FROM ubuntu ENTRYPOINT /bin/bash 但是,在构build映像并运行容器之后,我发现我无法运行bash命令。 例如,如果我input: # clear 容器似乎卡在无限循环中运行。 那为什么会这样呢? 我该如何解决?

为什么我的Dockerfile CMD不起作用?

所以在我的Dockerfile的末尾,我有这样的: WORKDIR /home CMD django-admin startproject whattt CMD /bin/bash 当我创build图像,然后运行容器时,一切都按预期工作,没有错误,在Docker日志中没有错误。 不过还是有些问题我看不出来。 第一个也是最重要的问题是CMD django-admin startproject实际上并没有创build任何项目。 在运行容器后,我可以手动运行django-admin startproject,并按预期工作。 当我从Dockerfile中将其作为CMD发布时,则不会创build任何项目。 第二个问题是在django-admin行之后,我把第二个CMD放在/ bin / bash中,所以当我运行容器的时候它会打开一个shell(这样我就可以进入并检查是否创build了django项目)。 这会造成一个问题或冲突与以前的Djangopipe理线? 如果我删除了这一行,那么当我运行容器时,我无法打开shell并检查我的django项目是否在那里? 任何帮助将不胜感激,谢谢。

在Docker镜像/容器中安装和使用Gradle

在Dockerfile创buildDockerfile镜像的过程结束时,我收到了这个奇怪的错误: /bin/sh: 1: gradle: not found INFO[0003] The command [/bin/sh -c gradle test jar] returned a non-zero code: 127 Dockerfile的相关部分: FROM debian:jessie […] RUN curl -L https://services.gradle.org/distributions/gradle-2.4-bin.zip -o gradle-2.4-bin.zip RUN apt-get install -y unzip RUN unzip gradle-2.4-bin.zip RUN echo 'export GRADLE_HOME=/app/gradle-2.4' >> $HOME/.bashrc RUN echo 'export PATH=$PATH:$GRADLE_HOME/bin' >> $HOME/.bashrc RUN /bin/bash -c "source $HOME/.bashrc" RUN […]

反向代理nginx和Express服务器返回502

我正在运行一个带有Nginx反向代理configuration的VPS,转发给三个Angular网站。 每个站点都在Express服务器后面的Docker容器中运行。 我起床的前两个网站没有问题。 他们是简单的Angular网站,在项目目录的底部有server.js和index.html文件。 对于第三个站点我有一点点爱好者,并使用Grunt将项目文件构build到一个名为public的新目录中。 我的目标是从该公共目录中查看该站点。 这是我的nginx.conf文件。 请注意,前两个服务器块正在按预期工作。 然而,浏览到第三个结果是“502错误请求”: server { listen 80; server_name domain1.com domain2.ca; location / { proxy_pass http://127.0.0.1:9001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_redirect off; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name sub1.domain1.com sub1.domain2.ca; location / { proxy_pass http://127.0.0.1:9002; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_redirect off; proxy_set_header […]

如何创build我的nginx.conf

问题是API和前端没有链接。 当我启动nginx容器时,我可以使用–link命令。 但我仍然需要编辑我的nginx.conf。 目前我有 worker_processes 4; events { worker_connections 1024; } http { upstream node-app { least_conn; server nodejs:8888 weight=10 max_fails=3 fail_timeout=30s; } server { listen 80; location / { proxy_pass http://node-app; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } } 我的nodejs容器有–name nodejs和它的端口8888上运行( -p 8888:8888 )它的dockerfile看起来像这样: FROM node […]

使用Supervisor在单个Dockerfile中部署多个Tomcat实例

我有以下的Dockerfile。 FROM java:8-jre RUN apt-get update && apt-get install -y supervisor RUN mkdir -p /var/log/supervisor COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf ##################################################################### ENV CATALINA_HOME /usr/local/tomcatppsraptor #ENV PATH $CATALINA_HOME/bin:$PATH RUN mkdir -p "$CATALINA_HOME" WORKDIR $CATALINA_HOME # see https://www.apache.org/dist/tomcat/tomcat-8/KEYS RUN gpg –keyserver pool.sks-keyservers.net –recv-keys \ 05AB33110949707C93A279E3D3EFE6B686867BA6 \ 07E48665A34DCAFAE522E5E6266191C37C037D42 \ 47309207D818FFD8DCD3F83F1931D684307A10A5 \ 541FBE7D8F78B25E055DDEE13C370389288584E7 \ 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 \ 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED \ 9BA44C2621385CB966EBA586F72C284D731FABEE \ A27677289986DB50844682F8ACB77FC2E86E29AC […]

使用RUN命令在docker中执行shell脚本

新来的docker工人,请耐心等待。 我的Dockerfile包含一个入口点: ENV MONGOD_START "mongod –fork –logpath /var/log/mongodb.log –logappend –smallfiles" ENTRYPOINT ["/bin/sh", "-c", "$MONGOD_START"] 我有一个shell脚本通过python脚本添加一个条目到数据库,并启动服务器。 脚本startApp.sh chmod +x /addAddress.py python /addAddress.py $1 cd /myapp/webapp grunt serve –force 现在,所有下面的RUN命令在执行这个脚本时都是不成功的。 sudo docker run -it –privileged myApp -C /bin/bash && /myApp/webapp/startApp.sh loc sudo docker run -it –privileged myApp /myApp/webapp/startApp.sh loc 容器的docker日志是 "about to fork child process, waiting until […]

Nginx与docker不工作的Web应用程序

我正在尝试在docker中为我的react / flux webapp设置一个容器。 我决定去与一个nginx服务器来处理聆听和路由。 这是nginx的web.confconfiguration文件 server { listen 80; location / { root /www/web_files; try_files $uri $uri/ /index.html =404; index index.html; add_header expires off; } } 现在,我在docker的一个amazon节点上部署了这个节点,并且可以在VM的公共IP上访问它。 http://54.238.176.11 现在,我想设置我的/ www / web_files目录,其中nginx将search$ uri或index.html 这是我的我的容器for web_files泊坞窗文件。 我将它部署在与我的nginx服务器相同的节点上。 FROM ubuntu RUN apt-get update RUN apt-get -y install bash git openssh-client g++ gcc libc6-dev make curl RUN […]

Docker:在Rails应用程序中build立PostgreSQL连接的问题

我已经研究了几天,现在终于到了可以帮助的地步。 我正在尝试使用颇受欢迎的Phusion Passenger Docker镜像作为我的基础镜像来启动运行Rails应用程序的简单Docker镜像。 问题在于build立到PostgreSQL数据库的连接。 这是我的database.yml文件: default: &default adapter: postgresql pool: 5 user: pguser password: pguser timeout: 5000 host: localhost encoding: utf8 port: 5432 production: <<: *default database: myapp_production 我正在试图用这个Dockerfilebuild立图像: # Use phusion/passenger-full as base image. To make your builds reproducible, make # sure you lock down to a specific version, not to `latest`! # […]

在dockerfile中运行artisan迁移时出错

我正在尝试为Laravel(3)应用程序构buildDocker镜像。 作为该过程的一部分,我尝试在dockerfile中运行迁移: RUN php /api/artisan migrate:install –env=local RUN php /api/artisan migrate –env=local 我得到以下错误: 警告:PDO :: __构造():php_network_getaddresses:getaddrinfo失败:名称或服务不在/api/laravel/database/connectors/mysql.php在行33 SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo失败:名称或服务不知道PHP警告:PDO :: __构造():php_network_getaddresses:getaddrinfo失败:名称或服务未知/api/laravel/database/connectors/mysql.php上线33 但! 当我尝试运行我build立的容器时,使用脚本cd api && php artisan migrate:install –env=local && php artisan migrate –env=local && service apache2 start – 一切正常。 我不知道什么会导致错误。 有什么见解吗? 在使用docker的同时迁移laravel应用程序的另一个最佳实践也是受欢迎的!