Tag: 环境

Docker环境variables

我正在使用Hyperledger Fabric Docker镜像,并且想要在Docker容器中设置docker-compose和docker环境variables。 我试图在docker-compose.yaml中设置环境variables,但仍然无法访问环境variables的内幕docker容器。 我需要这些设置,以便在Docker容器中进行更改时,我可以提交这些更改。 否则每次我必须设置环境variables。 请让我知道如何做到这一点。 我的环境详情: Client: Version: 17.04.0-ce API version: 1.28 Go version: go1.7.5 Git commit: 4845c56 Built: Mon Apr 3 18:07:42 2017 OS/Arch: linux/amd64 Server: Version: 17.04.0-ce API version: 1.28 (minimum version 1.12) Go version: go1.7.5 Git commit: 4845c56 Built: Mon Apr 3 18:07:42 2017 OS/Arch: linux/amd64 Experimental: false Operating System […]

什么程序可以安装在docker集装箱

我是一个Windows用户。 我看了官方的Docker教程“入门”。 示例重点是一个python应用程序。 我不知道python,我猜Docker容器可以有许多程序作为一个环境安装,而不仅仅是python。 Docker是否适合testing我从互联网上下载的程序(如防火墙或防病毒软件中的沙箱)? 例如,我可以做一个容器,其中包含像Visual Studio,VLC播放器,办公室等安装的程序的环境? 谢谢你,安倍

弹簧系统参数被忽略

我创build了我的Dockerfile,在那里我想创build一个简单的Spring Boot Webapp监听端口。 FROM java:8 VOLUME /tmp ENV port=123 #WORKDIR /workdir ADD /target/docker-test-0.1.jar dockertest.jar EXPOSE $port RUN bash -c 'touch /dockertest.jar' #ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom -Dserver.port=$port","-jar","/dockertest.jar"] ENTRYPOINT java -jar /dockertest.jar -Djava.security.egd=file:/dev/./urandom -Dserver.port=$port 我的webapps application.properties定义了以下内容: server.port=666 通过IntelliJ Docker插件启动Docker容器我给它的参数: port=555 运行docker inspect bootapp (bootapp是容器名称)给我以下有关端口环境variables和入口点的信息: "Entrypoint" : [ "/bin/sh", "-c", "java -jar /dockertest.jar -Djava.security.egd=file:/dev/./urandom -Dserver.port=$port" ], "Env" : [ "port=555", […]

envvariables在运行容器中可见,但不能在bash脚本中插入

我在docker-compose中设置了一个envvariables,如下所示: cloud: build: context: foobar/. ports: – "5000:5000" depends_on: – redis – rabbitmq – postgresql links: – redis – rabbitmq – postgresql environment: – RABBITMQ_HOST=rabbitmq 我可以看到它在运行的容器中列出,我可以很好地回应它。 WORKON_HOME=/opt/virtualenvs VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHLVL=1 HOME=/root no_proxy=*.local, 169.254/16 LESSOPEN=| /usr/bin/lesspipe %s RABBITMQ_HOST=rabbitmq LESSCLOSE=/usr/bin/lesspipe %s %s _=/usr/bin/env 但是,当我尝试在运行容器中的configuration文件中使用它时,如下所示: amqp://guest:guest@${RABBITMQ_HOST} 然后我运行docker-compose,应用程序只是退出,因为它找不到RABBITMQ_HOSTvariables? 是什么赋予了? 我使用envdir像这样开始在一个bash脚本gunicorn服务器: envdir /apps/foobar/.envdir gunicorn -w 2 -b 0.0.0.0:5000 dispatch:app –reload […]

Net核心Docker环境variables

我不知道这是否是发布这个问题的正确的地方。 如果不是请对不起! 我在.net核心2.0中有一个应用程序,我已经为应用程序设置/config/servicediscovery.json创build了一个文件夹 Sample { "Discovery": { "Enabled": true, "Url": "http://localhost:8500", "ServiceId": "service", "ServiceName": "service", "ServiceUrl": "http://localhost", "ServicePort": "53489", "HealthCheck": "http://localhost:53489/ping", "HealthCheckInterval": 5 } } 此文件具有与服务发现应用程序进行通信的默认设置,默认情况下具有在本地主机上运行的值。 在创build图像后,我试图用docker运行应用程序 docker run –rm -it -p 5000:80 –name ServiceName Repository:Service:2.0.17298.133 –env ASPNETCORE_ENVIRONMENT=Production -e Discovery:HealthCheck="htttp://www.microsoft.com" 但是这并不适用于环境设置。 这是对的? 还有另一种方法来做到这一点?

如何在Dockerfile中设置一个variablesENV以便在Docker容器中重写?

我有一个容器,应该与IP用户创build。 这就是我在Dockerfile中的内容: ENV REMOTE_HOST=xxxxxxxxxx RUN { \ echo '[xdebug]'; \ echo 'zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so'; \ echo 'xdebug.remote_enable=1'; \ echo 'xdebug.remote_port=9000'; \ echo 'xdebug.remote_autostart=1'; \ echo 'xdebug.remote_handler=dbgp'; \ echo 'xdebug.idekey=dockerdebug'; \ echo 'xdebug.profiler_output_dir="/var/www/html"'; \ echo 'xdebug.remote_connect_back=0'; \ echo 'xdebug.remote_host=$REMOTE_HOST'; \ } >> /usr/local/etc/php/php.ini 这就是我如何创build从该Dockerfile派生的容器:dockerrun从该Dockerfile的图像: docker run -e REMOTE_HOST=123456 -p 80:80 -v /Users/myusrname/Documents/mysite:/var/www/html myImage 这是我在php.ini里面的容器: root@1713e0a338f9:/var/www/html# cat /usr/local/etc/php/php.ini … […]

terminal与docker与链接撰写

我想在桥接networking下将三个服务(db,nginx和web服务)连接在一起,并能够从本地主机或容器内部捅出不同的服务,并为web服务提供交互式terminal。 我怎样才能做到这一点? 我的docker组成configuration如下: version: '2' services: web: build: context: . dockerfile: Dockerfile-alpine command: /bin/bash ports: – "5000:5000" volumes: – $REPO_DIR:/repository links: – db – nginx nginx: image: nginx:stable-alpine ports: – "8080:8080" volumes: – $NGINX_STATIC_DIR:/var/www/static – $NGINX_CONFIG_FILE:/etc/nginx/nginx.conf db: image: mysql/mysql-server ports: – "3307:3306" environment: MYSQL_USER: $MYSQL_USER MYSQL_PASSWORD: $MYSQL_PASSWORD MYSQL_DATABASE: $MYSQL_DATABASE MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD volumes: – $DB_DATA_DIR:/var/lib/mysql – […]

为什么Perl ENV哈希中缺less一些条目

当我访问应该在%ENV散列中定义的variables时,Perl给了我一个undef值。 这怎么可能? root@23cd5f45def7:~/bin$ perl -e 'warn $ENV{SHELL}' Warning: something's wrong at -e line 1. 我希望perl输出/ bin / bash 。 更多关于环境的信息: root@23cd5f45def7:~/bin$ echo $SHELL /bin/bash root@23cd5f45def7:~/bin$ $SHELL –version GNU bash, version 4.2.37(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2011 Free Software Foundation, Inc. … root@23cd5f45def7:~/bin$ perl -v This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi […]

在Mac上使用Docker而不是native / homebrew?

我目前有一个LAMP堆栈安装在我的Mac上运行通过Homebrew,其实,几乎没有得到的使用。 最近我一直在使用AngularJS和基于服务的应用程序,所以一般通过基于gulp / nodeJS的web服务器来运行这些站点。 我完全是以前端为导向的,所以除了奇怪的Drupal站点和mysql之外,我很less使用后端相关的技术。 我有兴趣了解更多的NodeJS,也许甚至是一些Ruby,纯粹是为了更多地了解编程 – 而不是真的让它成为我的新职位描述。 所以昨天晚上读了一下NodeJS,我读了很多关于Docker的知识,今天早上安装了工具包和gui。 它看起来很整洁! 我的问题是:通过Docker运行我需要的所有东西对我来说会更好吗? 例如,我只需要安装mysql容器,并在需要数据库的时候打开它,然后在需要的时候启动一个drupal实例并将其连接到我的数据库实例? 我知道在Mac上运行Docker比较慢,因为它没有本地Linux内核,并且通过虚拟机运行 – 但考虑到我的需求,这应该是好的? 我喜欢只是部署容器的想法,所以也可能想在我的主机环境中安装Docker(VM中的云)。 后续问题:我工作的网站中有90%是基于AngularJS的前端,我们的后端人员可以单独构buildAPI。 为每个站点都安装一个Docker会是多么的矫枉过正,或者我宁愿将它们全部运行在一个地方,或者完全绕过Docker(就像我之前提到的,我通常只是从我的Gulp的web服务器中加载它们) 非常感谢。 我意识到这是一个关于大技术的问题,但我正在试图围绕它来解决这个问题,并希望在这个过程中有所发展。

我怎样才能在DockerFile中定义我的ENVvariables,并将其传递给由supervisord托pipe脚本提交的spark图像?

我正在构build一些Docker Spark图像,对于如何将DockerFile中定义的环境(ENV)variables一直向下传递到容器,通过“run -e”进入supervisord,然后进入spark,我有点困惑- 提交shell,而不必在supervisord.conf文件中再次对它们进行硬编码(这似乎是在这里有点类似的build议: supervisord环境variables设置应用程序 )。 为了帮助解释,想象下面的组件: DockerFile(包含大约20个环境variables“ENV FOO1 bar1”等) run.sh(docker run -d -e my_spark_program) conf / supervisord.conf([program:my_spark_program] command = sh /opt/spark/sbin/submit_my_spark_program.sh等) submit_my_spark_program.sh(包含我想运行的jar的spark提交 – 可能还需要类似–files•–conf'spark.executor.extraJavaOptions = -Dconfig.resource = app'•–conf'spark。 driver.extraJavaOptions = -Dconfig.resource = app',但是这看起来不太合适?) 我想我想在DockerFile中定义我的ENVvariables一次,并且我认为应该可以通过使用“-e”开关的run.sh将它们传递到容器中,但是我似乎无法了解如何将它们从那里传递到supervisord和超出spark-submit shell(submit_my_spark_program.sh),以便它们最终可用于我的spark提交的jar文件。 这似乎有点过度devise,所以也许我在这里失去了一些东西…?