|
@@ -197,14 +197,26 @@ func (sb *sandbox) setupDNS() error {
|
|
|
// This is for the host mode networking
|
|
|
if sb.config.originResolvConfPath != "" {
|
|
|
if err := copyFile(sb.config.originResolvConfPath, sb.config.resolvConfPath); err != nil {
|
|
|
- return fmt.Errorf("could not copy source resolv.conf file %s to %s: %v", sb.config.originResolvConfPath, sb.config.resolvConfPath, err)
|
|
|
+ if !os.IsNotExist(err) {
|
|
|
+ return fmt.Errorf("could not copy source resolv.conf file %s to %s: %v", sb.config.originResolvConfPath, sb.config.resolvConfPath, err)
|
|
|
+ }
|
|
|
+ logrus.Infof("%s does not exist, we create an empty resolv.conf for container", sb.config.originResolvConfPath)
|
|
|
+ if err := createFile(sb.config.resolvConfPath); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
}
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
currRC, err := resolvconf.Get()
|
|
|
if err != nil {
|
|
|
- return err
|
|
|
+ if !os.IsNotExist(err) {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // it's ok to continue if /etc/resolv.conf doesn't exist, default resolvers (Google's Public DNS)
|
|
|
+ // will be used
|
|
|
+ currRC = &resolvconf.File{}
|
|
|
+ logrus.Infof("/etc/resolv.conf does not exist")
|
|
|
}
|
|
|
|
|
|
if len(sb.config.dnsList) > 0 || len(sb.config.dnsSearchList) > 0 || len(sb.config.dnsOptionsList) > 0 {
|