Tag: 泊位者组成

Docker和Magento权限问题

我已经正确docker化了Apache + MySQL,并且设法打开了Magento的安装安装页面。 但是我在pipe理主机< – >容器数据卷时遇到了问题。 Magento正在卷上创build只读日志文件,但是安装会返回一个错误,指出日志文件在安装过程后面的步骤中是不可写入的。 我怀疑Docker的ACL会自动将新文件设置为只读,但是在从卷中再次读取文件后,它将不可写入并返回错误。 有没有人知道解决这个问题的优雅方式? 泊坞窗,compose.yml: apache: build: . dockerfile: Dockerfile command: "/usr/sbin/apache2 -D FOREGROUND" volumes: – ./src/magento:/var/www/site environment: APACHE_RUN_USER: www-data APACHE_RUN_GROUP: www-data APACHE_LOCK_DIR: /var/lock/apache2 APACHE_LOG_DIR: /var/log/apache2 APACHE_PID_FILE: /var/run/apache2.pid ports: – "80:80" mysqldb: image: mysql ports: – "3306:3306" environment: MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' MYSQL_ROOT_PASSWORD: pass MYSQL_DATABASE: magento Dockerfile: FROM ubuntu ENV DEBIAN_FRONTEND noninteractive […]

如何获得在Docker容器中的Magento App代码

我还没有设法find解决scheme,如何在我的主机上访问Docker容器中的Magento App代码,以便有机会在我最喜欢的IDE中进行开发。 详细地说,我使用这个图像( https://github.com/alexcheng1982/docker-magento )来获得Magento 1.9。 我通过命令“ docker-compose up -d ”构build了容器,一切正常。 我可以看到我的网站在http://local.magento工作正常。 但是,作为开发人员,我想在我的主机上的PHPStorm编辑器中打开该应用程序。 怎么做? 提前致谢。

无法从主机连接到托pipe在Docker容器中的服务器

我试图在Docker容器中设置一个开发环境,使用容器来编译和运行我的代码,而代码本身驻留在主机(即本地机器)上。 我已经构build并运行了该映像,但无法连接到该映像。 我的dockerfile: # Dockerfile (tag: v3) FROM node:latest WORKDIR /tmp COPY package.json /tmp/ RUN npm config set registry http://registry.npmjs.org/ && npm i WORKDIR /usr/src/app COPY . /usr/src/app/ RUN cp -a /tmp/node_modules /usr/src/app/ && npm run dll ENV NODE_ENV=production ENV PORT=4000 EXPOSE 4000 然后我的docker-compose文件: # docker-compose.yml (tag: v4) web: build: . ports: – "4000:4000" volumes: […]

Docker selenium 2.53不能用envvariables覆盖maxInstances和maxSession

所以我有以下docker组合configuration: selenium-hub: image: selenium/hub:2.53.1 environment: – GRID_BROWSER_TIMEOUT=30000 chrome: image: selenium/node-chrome-debug:2.53.1 volumes: – /dev/shm:/dev/shm # Mitigates the Chromium issue described at https://code.google.com/p/chromium/issues/detail?id=519952 environment: – NODE_MAX_INSTANCES=4 – NODE_MAX_SESSION=4 firefox: image: selenium/node-firefox-debug:2.53.1 environment: – FIREFOX_VERSION=45.8.0 – NODE_MAX_INSTANCES=4 – NODE_MAX_SESSION=4 即使我重写NODE_MAX_INSTANCES和NODE_MAX_SESSION,我仍然可以在maxSession=1看到maxSession=1和maxInstances=1 ,所以问题是,这里可能是什么问题,因为大多数情况下它是在官方selenium泊坞窗维基?

Selenium节点泊坞窗图像NODE_MAX_SESSION和NODE_MAX_INSTANCES envvariables

我正在使用来自Selenium wiki的 docker撰写文件。 对于chrome和firefox节点,有NODE_MAX_SESSION和NODE_MAX_INSTANCESvariables。 我的理解是正确的 – configurationNODE_MAX_SESSION或NODE_MAX_INSTANCES铬或火狐图像没有区别,例如铬节点只能启动铬浏览器和Firefox浏览器只有firefox节点。 那么为什么有两个呢?

mount root FS只能用docker-compose读取

我尝试应用docker CIS( https://github.com/docker/docker-bench-security ) testing5.13是:将Mount container's root filesystem as read only docker run有一个选项可以只读root FS: –read-only=true read –read-only=true 但是我找不到与docker-compose一样的可能性。 有没有可能根据docker-compose来读取根FS?

Docker组成生产和开发

所以我使用Python + Django(但是这个问题并不重要) 当我写我的代码,我只是运行 ./manage.py runserver 其中的networking服务器,静态文件,自动重新加载等 并把它放在生产上我使用一系列的命令 ./manage.py collectstatic ./manage.py migrate uwsgi –http 127.0.0.1:8000 -w wsgi –processes=4 我也有一些其他的服务,如postgres,redis(这是常见的生产和开发) 所以我试图在这里适应docker(+ -compose),我不明白如何拆分prod / dev。 基本上在docker-compose.yml你定义了你的服务和图像 – 但是在我的情况下,生产中的图像应该运行一个CMD,并在dev另一个.. 有什么最好的做法来实现呢?

如何通过docker撰写selenium服务器

如何通过docker将selenium服务器连接到另一个容器? 我的dicker-compose.yml是: version: '2' services: selenium: image: selenium/standalone-chrome ports: – "4444:4444" lamp: build: ./lamp ports: – "3306:3306" – "80:80" volumes: – /projects:/var/www/projects links: – selenium 然后 sudo docker exec -it composelamp_lamp_1 /bin/bash root@68a87ec3325f:/# curl http://127.0.0.1:4444/wd/hub curl: (7) Failed to connect to 127.0.0.1 port 4444: Connection refused 我做错了什么?

使用consuldynamic地将IP和端口导出到另一个Docker容器

目标:从phpapp容器提供的web页面对http:// $ IP:$ PORT / api / container.json进行XHR调用, 而不用为microservice api容器的IP和端口硬编码环境variables 。 http:// CONSULHOST:8500 / v1 / catalog / service / api将为我的API微服务公开configuration。 例: [{"Node":"node", "Address":"123.1.2.3", "ServiceID":"163b5be3-5450-4cac-8416-c1630723bc42-n1:microlith_micro-hipchat_1:443", "ServiceName":"hipchat", "ServiceTags":["primary"], "ServiceAddress":"123.234.234.234", "ServicePort":32772 }] 我正在寻找从该API端点上面列出的ServiceAddress和ServicePort端口,通过在phpapp Docker容器中dynamic调用API而不用硬编码信息。 然后,我可以在前端 Web浏览器中将此信息用作对http:// IP_OF_APP_CONTAINER的PUBLIC调用:PUBLIC_PORT / api / container.json 我已经安装了注册器的 领事 ,都在Docker Swarm中工作。 我不想为我的微服务configuration硬编码。它必须使用Consul或环境dynamic创build。 我不想对Consul IP进行编码。 它可以以某种方式传递,但我必须能够通过bash构build脚本来完成。 phpapp容器被链接到api容器,但是这似乎没有暴露前端端口,只有IP。 我做了一个我的用例图: docker-compose -> swarm -> phpapp container […]

如何在Docker容器之间共享dynamic生成的秘密

我已经将两个使用其他API端点的Docker容器链接在一起。 这些API端点受秘密保护,并在容器启动时生成 。 我正在寻找一种安全的方式来分享这些服务之间的秘密而不做任何事情(如硬编码)。 这些服务是使用docker-compose创build和链接在一起的,并且可以使用环境variables覆盖该秘密。 但是,这种行为不鼓励生产。 在我的情况下,分发这些秘密的最安全的方法是什么? 我考虑过的事情: 使用将这些秘密存储为文件的中央数据容器。 客户端然后可以链接到这个容器并查找文件中的秘密。 这种方法的巨大缺点是它限制了容器在同一个节点上运行。 在部署容器之前,用这些随机秘密生成一个docker-compose文件。 这种方法的缺点是,不可能简单地使用docker-compose文件,而是将自己限制在一个bash脚本中,以产生一些关键任务,如这些秘密。 这也不会坚持我的观点,即解决scheme应该dynamic适应秘密的变化。 边注 最终,如果解决scheme也可以dynamic适应秘密变化,我更喜欢它。 例如,当一个容器失败时,它将自动重启,从而也产生一个新的秘密。