我正在使用默认的 MongoDB Docker 映像,并且正在尝试为数据库创建一个新用户。
我目前正在尝试这样做:
FROM docker.io/mongo:3.2
MAINTAINER <alexandernst> alexandernst@gmail.com
ADD create_ddbb.js /tmp/
RUN mongod --fork --logpath /var/log/mongodb.log \
&& sleep 5 && mongo foobar /tmp/create_ddbb.js
Run Code Online (Sandbox Code Playgroud)
和create_ddbb.js
:
db.createUser(
{
user: "*******",
pwd: "*******************",
roles: [
{ role: "readWrite", db: "foobar" }
]
}
);
Run Code Online (Sandbox Code Playgroud)
当我构建 Dockerfile 时,我看到:
Step 4 : RUN mongod --fork --logpath /var/log/mongodb.log && sleep 5 && mongo foobar /tmp/create_ddbb.js
---> Running in 58ba44d02508
about to fork child process, waiting until server is ready for connections. …
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的整个 nginx 服务器设置一个默认的 error_page(就像所有虚拟主机一样)。
我正在尝试使用以下代码:
http {
...
...
error_page 404 /var/www/default/404.html;
...
...
}
Run Code Online (Sandbox Code Playgroud)
另外,如果我没有明确编写另一个虚拟主机,我希望能够创建一个虚拟主机并使其使用默认的 404.html。
就像是:
server {
...
server_name mydomain.com
root /var/www/mydomain.com/;
...
}
Run Code Online (Sandbox Code Playgroud)
无论如何,我收到以下错误:
[error] 16842#0: *1 open() "/var/www/mydomain.com/var/www/default/404.html" failed (2: No such file or directory)
Run Code Online (Sandbox Code Playgroud)
虽然我确实理解错误,并且我确实理解它为什么会发生,但我不明白为什么我不能告诉 NGINX 使用默认的 error_page 作为绝对路径而不是将它附加到我的 vhost 的根目录。
知道如何制作吗?
问候
有没有办法可以在容器内运行 bash 脚本,然后删除容器,所有内容都在一行中?该脚本应该能够写入它当前所在的文件夹。
我试过了
docker run --rm -ti ubuntu:trusty bash -c 'source runme.sh'
Run Code Online (Sandbox Code Playgroud)
但是 bash 找不到该文件,我假设是因为容器无权访问脚本所在的文件夹。
我正在尝试使用我拥有的域设置我的 BIND,并且我正在使用 dnssy.com 和 intodns.com 来检查一切是否正常,但是我在两者中都遇到了错误。错误说我的 DNS 服务器是“蹩脚的”(我不明白这是什么意思)。
我的named.conf
options {
directory "/var/dns";
pid-file "/var/run/named/named.pid";
auth-nxdomain yes;
datasize default;
listen-on-v6 { any; };
listen-on { 127.0.0.1; 188.165.234.51; };
listen-on-v6 { ::1; };
allow-recursion { 127.0.0.1; };
allow-transfer { none; };
allow-update { none; };
allow-query { any; };
allow-query-cache { any; };
version none;
hostname none;
server-id none;
};
include "/var/dns/autogen-zones";
Run Code Online (Sandbox Code Playgroud)
autogen-zones 是一个自动生成的文件,其中包含以下内容:
zone "localhost" IN {
type master;
file "localhost.zone";
allow-transfer { any; };
};
zone "0.0.127.in-addr.arpa" IN { …
Run Code Online (Sandbox Code Playgroud) 我可以在我的 .zone 文件中放入这样的内容吗?
@ IN CNAME srvr-01.foo.bar.
Run Code Online (Sandbox Code Playgroud)
或者那是无效的?如果无效,如何将访问者重定向mydomain.com
到服务器srvr-01.foo.bar
?(请注意,我没有得到服务器 IP,只有域,这让我认为它可能会随机更改)
编辑:对不起,我的错。我替换NS
为CNAME
,这正是我真正想写的。
我想把我所有的区域文件放在几个目录中(让我们坚持这样的想法,我不知道有多少目录,也不知道它们有什么名字)并使 BIND 包含它们。(不是递归的,只是第一个文件夹中的区域文件)
换句话说,这样的事情可能吗?
options {
directory "/var/bindconf/*";
}
Run Code Online (Sandbox Code Playgroud)
具有如下文件夹结构:
/var/bindconf/folderA/my_zone_file.conf
/var/bindconf/folderB/my_zone_file_1.conf
/var/bindconf/folderB/my_zone_file_2.conf
/var/bindconf/folderC/my_zone_file_1.conf
/var/bindconf/folderC/my_zone_file_2.conf
/var/bindconf/folderC/my_zone_file_3.conf
Run Code Online (Sandbox Code Playgroud)
问候