小编End*_*der的帖子

如何使用postgres docker镜像保留数据?

我正在尝试将我的数据保存在/ 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)

postgresql redmine docker

9
推荐指数
1
解决办法
6678
查看次数

可以延迟导出符号的加载吗?

我正在使用一些Linux内核模块,并且有一个与循环加载问题相关的问题.

模块A首先加载并导出许多符号,供模块B或C使用.然后,模块B或C被加载,并且符号存在供其使用.

但是,我现在发现模块A需要来自模块B或C的符号,但仅在运行时期间,而不需要初始化模块.所以当A加载时,它发现该符号尚不存在.我甚至在模块A中将符号标记为extern,但这也没有用.

加载模块A后是否可以延迟加载符号,但在加载B或C之前它仍然不存在?

kernel kernel-module linux-kernel

7
推荐指数
1
解决办法
237
查看次数

什么是互斥锁失败,无效参数意味着什么?

此代码在我的主进程中调用并编译正常,但执行时总是抛出下面的错误.

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)

c++ boost

5
推荐指数
1
解决办法
2万
查看次数

如何在Dockerfile中将文件放在共享卷上?

我有一个Dockerfile,它构建了一个图像,为我提供了一个复杂的工具链环境,可以在主机文件系统的已装载卷上编译项目.另一个原因是我在图像上没有很多空间.

Dockerfile在OS映像中构建我的工具链,然后通过下载要放置在主机共享卷上的包来准备源.通常从那里我然后登录图像并执行命令来构建.这就是问题所在.我可以在Dockerfile中下载源代码,但是如何将它下载到共享卷.

基本上我有......

ADD http://.../file mydir
VOLUME /home/me/mydir
Run Code Online (Sandbox Code Playgroud)

但当然,我得到错误'无法在现有文件上安装卷..."

我错了吗?

docker dockerfile

2
推荐指数
1
解决办法
358
查看次数

为什么make_shared在单独的调用中分配相同的地址?

为什么此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)

它在线上:http : //coliru.stacked-crooked.com/a/ffc92bc131009402

c++ c++11

2
推荐指数
1
解决办法
60
查看次数

使用QTreeView,如何仅使用调用函数突出显示特定的行/列?

我正在使用C++ Qt5.目前我有一个QStandardItemModel显示为具有多行和多列的QTreeView.我知道使用setStyleSheet(),但问题是鼠标悬停的每一行和每一行都会突出显示.

我只想要突出显示第一列的特定行,然后为每个单元格调用一个函数,然后突出显示我将用来操纵我的游戏.

c++ qt qtreeview qstandarditemmodel qt5

1
推荐指数
1
解决办法
81
查看次数

如何声明向量的unique_ptr?

我正在尝试声明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++ c++11

0
推荐指数
2
解决办法
6158
查看次数