我正在尝试将我的数据保存在/ home/me/redmine中,这样当我的容器停止时,没有数据丢失.我正在使用官方的postgres docker hub图像.
问题是,每次我启动postgres容器时,它会立即退出.当我将'data'附加到/ var/lib/postgresql时,这个问题就开始了,否则,在没有添加'data'的情况下,它会启动,但是我的数据没有被保存.此外,我在主机上的路径是/var/lib/postgresql/9.4/data,但图像页面说使用/ var/lib/postgresql/data.
以下是我尝试从主机启动/挂载卷的方法:
docker run --name postgres -d \
--env='DB_NAME=redmine_production' \
--env='DB_USER=redmine' \
--env='DB_PASS=secret' \
--volume=/home/me/redmine/postgresql:/var/lib/postgresql/data \
postgres
Run Code Online (Sandbox Code Playgroud)
...然后我将redmine链接如下......
docker run -d -p 3000:3000 --name redmine \
-v /home/me/redmine/files:/usr/src/redmine/files \
--link postgres:postgres redmine
Run Code Online (Sandbox Code Playgroud)
在redmine容器中,/ home/me/redmine/files卷是一个单独的目录,我试图将文件保留在Postgres数据库中的文件之外.
编辑:
当我进入我的主机/ var/lib/postgresql目录时,我在其中找到9.4/data然后看到我的/ etc/passwd或/ etc/groups中没有列出所有者和组,并想知道这是不是'与问题有关.
/var/lib/postgresql/9.4/data # ls -la
total 88
drwx------ 18 70 70 4096 Aug 13 2015 .
drwxr-xr-x 3 root root 4096 Mar 28 2015 ..
drwx------ 8 70 70 4096 Jul 2 2015 base
drwx------ 2 …Run Code Online (Sandbox Code Playgroud) 我正在使用一些Linux内核模块,并且有一个与循环加载问题相关的问题.
模块A首先加载并导出许多符号,供模块B或C使用.然后,模块B或C被加载,并且符号存在供其使用.
但是,我现在发现模块A需要来自模块B或C的符号,但仅在运行时期间,而不需要初始化模块.所以当A加载时,它发现该符号尚不存在.我甚至在模块A中将符号标记为extern,但这也没有用.
加载模块A后是否可以延迟加载符号,但在加载B或C之前它仍然不存在?
此代码在我的主进程中调用并编译正常,但执行时总是抛出下面的错误.
bounded_buffer<MyData> bb(200);
Producer<bounded_buffer<MyData> > producer(&bb);
boost::thread produce(producer); // throws on this line
Run Code Online (Sandbox Code Playgroud)
这是执行时总是出现的错误.
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument
Run Code Online (Sandbox Code Playgroud)
'class bounded_buffer'的代码完全如此boost示例页面所示... http://www.boost.org/doc/libs/1_55_0/libs/circular_buffer/example/circular_buffer_bound_example.cpp
我在这里找到了这个页面似乎显示完全相同的东西,但我无法理解给出的答案.Boost scoped_lock每次都失败了
更新:
这是调用仿函数时Producer :: operator()当前执行的操作.我的意图是我想要这个线程做的事情.
void operator() () {
//init();
//read();
// this line just a test
m_container->push_front(value_type());
/*Eventually will do the following:
while (1) {
read_from_usb_device();
// then store data in global buffer (bb)
}*/
}
Run Code Online (Sandbox Code Playgroud) 我有一个Dockerfile,它构建了一个图像,为我提供了一个复杂的工具链环境,可以在主机文件系统的已装载卷上编译项目.另一个原因是我在图像上没有很多空间.
Dockerfile在OS映像中构建我的工具链,然后通过下载要放置在主机共享卷上的包来准备源.通常从那里我然后登录图像并执行命令来构建.这就是问题所在.我可以在Dockerfile中下载源代码,但是如何将它下载到共享卷.
基本上我有......
ADD http://.../file mydir
VOLUME /home/me/mydir
Run Code Online (Sandbox Code Playgroud)
但当然,我得到错误'无法在现有文件上安装卷..."
我错了吗?
为什么此make_shared在两个单独的调用中分配相同的内存地址?
typedef struct {
int a;
int b;
int c;
} test_t;
void call_func()
{
std::shared_ptr<test_t> tst = std::make_shared<test_t>();
std::cout << "addr: " << tst << std::endl;
}
int main()
{
call_func();
call_func();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用C++ Qt5.目前我有一个QStandardItemModel显示为具有多行和多列的QTreeView.我知道使用setStyleSheet(),但问题是鼠标悬停的每一行和每一行都会突出显示.
我只想要突出显示第一列的特定行,然后为每个单元格调用一个函数,然后突出显示我将用来操纵我的游戏.
我正在尝试声明MyClassusing的全局向量unique_ptr。我的编译器是 4.8.4。
格洛.h
extern std::unique_ptr<std::vector<MyClass>> gl_vec;
Run Code Online (Sandbox Code Playgroud)
全局cpp
std::unique_ptr<std::vector<MyClass>> gl_vec;
Run Code Online (Sandbox Code Playgroud)
在我第一次在不同的 *.cpp 文件中初始化和使用它的文件中:
#include "glo.h"
// within function
{
gl_vec = std::unique_ptr<std::vector<MyClass>> ();
cout << "gl_vec size = " << (*gl_vec).size() << endl; // crashes here
}
Run Code Online (Sandbox Code Playgroud)
当我使用指针时,事情一直在崩溃。有人看到我做错了什么吗?
c++ ×4
c++11 ×2
docker ×2
boost ×1
dockerfile ×1
kernel ×1
linux-kernel ×1
postgresql ×1
qt ×1
qt5 ×1
qtreeview ×1
redmine ×1