我想用来docker-compose
组合php和几个数据库(orientdb,neo4j等).然后进入php
容器并使用shell执行命令.
单独地,我的所有容器都在游泳,当我把它们组合在一起时,它们都会运行.但是,我不能为我的生活弄清楚如何保持php
容器活着,所以我可以进入它进行测试.
为简单起见,我只使用一个数据库:orient-db.
我的docker-compose.yml
档案:
version: '2'
services:
php:
build: .
links:
- orientdb
orientdb:
image: orientdb:latest
environment:
ORIENTDB_ROOT_PASSWORD: rootpwd
ports:
- "2424:2424"
- "2480:2480"
Run Code Online (Sandbox Code Playgroud)
我的"php" Dockerfile
:
FROM php:5.6-cli
ADD . /spider
WORKDIR /spider
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin/ --filename=composer
RUN composer install --prefer-source --no-interaction
RUN yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini
Run Code Online (Sandbox Code Playgroud)
我试过(除其他外):
docker-compose up
在一个终端然后docker attach
在另一个终端tty …
Tl;博士:"我如何通过一堆异步,无序的微服务推送消息,并知道该消息何时通过它们?"
我正在努力为特定的微服务架构找到合适的消息传递系统/协议.这不是"哪个是最好的"问题,而是关于我对设计模式/协议的选择的问题.
那么,问题是,通过各种服务管理该消息的适当方式是什么?我不想一次做一个,订单并不重要.但是,如果是这种情况,那么系统如何知道所有服务何时发生了重击并且最终消息可以写入结束队列(以使下一批服务完成它们).
我能想到的唯一,半优雅的解决方案是
但是,这仍然需要每个服务都知道所有其他服务,并要求每个服务留下其标记.这些都不是必需的.
我对某种"牧羊人"服务持开放态度.
我很感激我错过的任何选择,并且愿意承认他们可能是一个更好的,基本的设计.
谢谢.
architecture design-patterns message-queue rabbitmq microservices
我试图在 Docker 容器内编译一个“hello world”Rust 程序,然后使用 GDBServer 和 CLion 远程调试它,但我认为gdbserver
启动不正确。当我启动它时,我没有收到我期望的“进程已启动”和“正在侦听端口...”消息;我什么也没得到。
我已经在家庭网络上使用 Raspberry Pi 成功完成了此操作,但在使用 Docker 时无法使其工作。
我的最终目标是在 Digital Ocean Droplet 上部署此 Docker 容器,并从本地计算机进行远程调试。目前,我已在本地计算机上运行 Docker。
我正在 Mac (Mojave) 上工作,运行 Docker (v18.09),并启动一个 Docker 容器,该容器是使用 Rust 构建的 Debian 镜像并gdbserver
安装了. GDBServer 和 Rust 通过以下方式安装:
# install curl (needed to install rust)
apt-get update && apt-get install -y curl gdb g++-multilib lib32stdc++6 libssl-dev libncurses5-dev
# install rust + cargo nightly
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain nightly …
Run Code Online (Sandbox Code Playgroud) 我正处于新项目/站点的早期规划阶段。该应用程序的三分之二已经用 php/laravel 编写。新部分将用 python 编写,最有可能使用 Flask 或 Cherrypy(我需要 Nosql 访问权限,因此 Django 已出局)。
Laravel 应用程序是主站点,管理用户注册、身份验证、活动流和通知,以及通用 REST Api。网站的这一部分已经在开发中,所以切换到 python 不是一个选择。
这两个部分都需要让最终用户感觉完全统一。设计和主题将是相同的。即使是网址也不会显示出任何区别:
site.com - laravel
site.com/forums - laravel
site.com/login,logout,signup - laravel
site.com/ - laravel
site.com/maker - python/flask
我想我已经想出了如何从同一台服务器上同时提供服务,但是如何共享登录信息?用户应该能够使用 laravel 登录并导航到 /maker 并且仍然处于登录状态。
要记住:
我在这里有哪些选择?
所以,我有一个奇怪的问题,我甚至不确定我能识别出来.我刚刚在Windows 7机器上安装了当前版本的Node.js(v.10.*).我试图在全局安装一些软件包(gulp和yoeman),但是在安装时遇到错误,在我的C:\ Users\Michael\AppData\Roaming \npm \node_modules目录中,许多软件包文件都丢失了.显然,当我尝试全局运行命令时,它会因为没有命令而失败.它从未被创造过.
其他一些全球安装的包工作正常(bower和grunt).
让事情变得非常棘手.当我将gulp安装到本地文件夹(没有-g)时,安装工作正常,我可以通过在命令之前添加整个路径来使用gulp.显然,我可以将该路径添加到我的系统属性中,因此该命令将是全局的,但这并不能解决我的问题.为什么在全局安装时安装会产生错误,而在本地安装时则不会?
当我在本地安装gulp时观察目录,我看到正在创建的文件.然后出现第一个错误,删除了许多文件.
我相信我的gulp安装日志的相关部分是:
6949 verbose lock lodash.noop@2.4.1 C:\Users\Michael\AppData\Roaming\npm-cache\7e62c2bb-lodash-noop-2-4-1.lock
6950 error Error: ENOENT, lstat 'C:\Users\Michael\AppData\Roaming\npm\node_modules\gulp\node_modules\vinyl-fs\node_modules\glob-stream\node_modules\glob2base\node_modules\lodash.findindex\node_modules\lodash.createcallback\node_modules\lodash._baseisequal\node_modules\lodash._releasearray\node_modules\lodash._arraypool'
6951 error If you need help, you may report this *entire* log,
6951 error including the npm and node versions, at:
6951 error <http://github.com/npm/npm/issues>
6952 error System Windows_NT 6.1.7601
6953 error command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "gulp"
6954 error cwd c:\wamp\www\phoenix\animus\gulp
6955 error node -v v0.10.28
6956 error npm -v 1.4.9
6957 error path C:\Users\Michael\AppData\Roaming\npm\node_modules\gulp\node_modules\vinyl-fs\node_modules\glob-stream\node_modules\glob2base\node_modules\lodash.findindex\node_modules\lodash.createcallback\node_modules\lodash._baseisequal\node_modules\lodash._releasearray\node_modules\lodash._arraypool
6958 error fstream_path …
Run Code Online (Sandbox Code Playgroud) 我已经阅读了文档,似乎SQL BATCH命令和事务完成了相同的目的,即将所有语句作为全有或全无的事务提交.
这是正确的,还是我错过了什么?
我通过PhpOrient语言绑定使用Orient,并看到它支持事务和批处理,但我只使用SQL并且只想使用SQL执行事务.从我的测试来看似乎是一样的,但我想确认一下.