| ... | ... |
@@ -33,13 +33,14 @@ type Container struct {
|
| 33 | 33 |
network *NetworkInterface |
| 34 | 34 |
NetworkSettings *NetworkSettings |
| 35 | 35 |
|
| 36 |
- SysInitPath string |
|
| 37 |
- cmd *exec.Cmd |
|
| 38 |
- stdout *writeBroadcaster |
|
| 39 |
- stderr *writeBroadcaster |
|
| 40 |
- stdin io.ReadCloser |
|
| 41 |
- stdinPipe io.WriteCloser |
|
| 42 |
- |
|
| 36 |
+ SysInitPath string |
|
| 37 |
+ ResolvConfPath string |
|
| 38 |
+ |
|
| 39 |
+ cmd *exec.Cmd |
|
| 40 |
+ stdout *writeBroadcaster |
|
| 41 |
+ stderr *writeBroadcaster |
|
| 42 |
+ stdin io.ReadCloser |
|
| 43 |
+ stdinPipe io.WriteCloser |
|
| 43 | 44 |
ptyMaster io.Closer |
| 44 | 45 |
|
| 45 | 46 |
runtime *Runtime |
| ... | ... |
@@ -78,7 +78,7 @@ lxc.mount.entry = devpts {{$ROOTFS}}/dev/pts devpts newinstance,ptmxmode=0666,no
|
| 78 | 78 |
lxc.mount.entry = {{.SysInitPath}} {{$ROOTFS}}/sbin/init none bind,ro 0 0
|
| 79 | 79 |
|
| 80 | 80 |
# In order to get a working DNS environment, mount bind (ro) the host's /etc/resolv.conf into the container |
| 81 |
-lxc.mount.entry = /etc/resolv.conf {{$ROOTFS}}/etc/resolv.conf none bind,ro 0 0
|
|
| 81 |
+lxc.mount.entry = {{.ResolvConfPath}} {{$ROOTFS}}/etc/resolv.conf none bind,ro 0 0
|
|
| 82 | 82 |
|
| 83 | 83 |
|
| 84 | 84 |
# drop linux capabilities (apply mainly to the user root in the container) |
| ... | ... |
@@ -82,6 +82,9 @@ func (runtime *Runtime) Create(config *Config) (*Container, error) {
|
| 82 | 82 |
if config.Hostname == "" {
|
| 83 | 83 |
config.Hostname = id[:12] |
| 84 | 84 |
} |
| 85 |
+ |
|
| 86 |
+ resolvConfPath := "/etc/resolv.conf" |
|
| 87 |
+ |
|
| 85 | 88 |
container := &Container{
|
| 86 | 89 |
// FIXME: we should generate the ID here instead of receiving it as an argument |
| 87 | 90 |
Id: id, |
| ... | ... |
@@ -92,7 +95,8 @@ func (runtime *Runtime) Create(config *Config) (*Container, error) {
|
| 92 | 92 |
Image: img.Id, // Always use the resolved image id |
| 93 | 93 |
NetworkSettings: &NetworkSettings{},
|
| 94 | 94 |
// FIXME: do we need to store this in the container? |
| 95 |
- SysInitPath: sysInitPath, |
|
| 95 |
+ SysInitPath: sysInitPath, |
|
| 96 |
+ ResolvConfPath: resolvConfPath, |
|
| 96 | 97 |
} |
| 97 | 98 |
container.root = runtime.containerRoot(container.Id) |
| 98 | 99 |
// Step 1: create the container directory. |