Compare commits

..

9 Commits

Author SHA1 Message Date
Michael Crosby 5d25f3232c Update changelog to include hostname commit 2013-08-13 17:36:24 +00:00
Guillaume J. Charmes 1a1c89556f Fix TestEnv 2013-08-13 17:34:35 +00:00
Nolan 05219d6b52 Add hostname to the container environment. 2013-08-13 17:30:21 +00:00
Michael Crosby c3773740d9 Bump to 0.5.3 2013-08-12 23:55:42 +00:00
Steeve Morin 0ca133dd76 Handle ip route showing mask-less IP addresses
Sometimes `ip route` will show mask-less IPs, so net.ParseCIDR will fail. If it does we check if we can net.ParseIP, and fail only if we can't.
Fixes #1214
Fixes #362
2013-08-12 23:46:26 +00:00
Guillaume J. Charmes 68934878f1 Make sure ENV instruction within build perform a commit each time 2013-08-12 23:43:53 +00:00
Michael Crosby ef1d1aefa7 Revert "docker.upstart: avoid spawning a sh process"
This reverts commit 24dd50490a.
2013-08-12 23:35:23 +00:00
Daniel Mizyrycki c015d26e96 API, issue 1471: Allow users belonging to the docker group to use the docker client 2013-08-12 23:33:42 +00:00
Michael Crosby 1643943402 Merge pull request #1464 from dotcloud/bump_0.5.2
Bump to 0.5.2
2013-08-08 17:36:53 -07:00
8 changed files with 35 additions and 6 deletions
+7
View File
@@ -1,5 +1,12 @@
# Changelog
## 0.5.3 (2013-08-13)
* Runtime: Use docker group for socket permissions
- Runtime: Spawn shell within upstart script
- Builder: Make sure ENV instruction within build perform a commit each time
- Runtime: Handle ip route showing mask-less IP addresses
- Runtime: Add hostname to environment
## 0.5.2 (2013-08-08)
* Builder: Forbid certain paths within docker build ADD
- Runtime: Change network range to avoid conflict with EC2 DNS
+15 -1
View File
@@ -13,6 +13,7 @@ import (
"net/http"
"os"
"os/exec"
"regexp"
"strconv"
"strings"
)
@@ -974,7 +975,20 @@ func ListenAndServe(proto, addr string, srv *Server, logging bool) error {
return e
}
if proto == "unix" {
os.Chmod(addr, 0700)
os.Chmod(addr, 0660)
groups, err := ioutil.ReadFile("/etc/group")
if err != nil {
return err
}
re := regexp.MustCompile("(^|\n)docker:.*?:([0-9]+)")
if gidMatch := re.FindStringSubmatch(string(groups)); gidMatch != nil {
gid, err := strconv.Atoi(gidMatch[2])
if err != nil {
return err
}
utils.Debugf("docker group found. gid: %d", gid)
os.Chown(addr, 0, gid)
}
}
httpSrv := http.Server{Addr: addr, Handler: r}
return httpSrv.Serve(l)
+2 -2
View File
@@ -167,9 +167,9 @@ func (b *buildFile) CmdEnv(args string) error {
if envKey >= 0 {
b.config.Env[envKey] = replacedVar
return nil
} else {
b.config.Env = append(b.config.Env, replacedVar)
}
b.config.Env = append(b.config.Env, replacedVar)
return b.commit("", b.config.Cmd, fmt.Sprintf("ENV %s", replacedVar))
}
+1 -1
View File
@@ -27,7 +27,7 @@ import (
"unicode"
)
const VERSION = "0.5.2"
const VERSION = "0.5.3"
var (
GITCOMMIT string
+1
View File
@@ -652,6 +652,7 @@ func (container *Container) Start(hostConfig *HostConfig) error {
"-e", "HOME=/",
"-e", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"-e", "container=lxc",
"-e", "HOSTNAME="+container.Config.Hostname,
)
for _, elem := range container.Config.Env {
+1
View File
@@ -960,6 +960,7 @@ func TestEnv(t *testing.T) {
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"HOME=/",
"container=lxc",
"HOSTNAME=" + container.ShortID(),
}
sort.Strings(goodEnv)
if len(goodEnv) != len(actualEnv) {
+5 -1
View File
@@ -104,7 +104,11 @@ func checkRouteOverlaps(dockerNetwork *net.IPNet) error {
continue
}
if _, network, err := net.ParseCIDR(strings.Split(line, " ")[0]); err != nil {
return fmt.Errorf("Unexpected ip route output: %s (%s)", err, line)
// is this a mask-less IP address?
if ip := net.ParseIP(strings.Split(line, " ")[0]); ip == nil {
// fail only if it's neither a network nor a mask-less IP address
return fmt.Errorf("Unexpected ip route output: %s (%s)", err, line)
}
} else if networkOverlaps(dockerNetwork, network) {
return fmt.Errorf("Network %s is already routed: '%s'", dockerNetwork.String(), line)
}
+3 -1
View File
@@ -5,4 +5,6 @@ stop on runlevel [!2345]
respawn
exec /usr/bin/docker -d
script
/usr/bin/docker -d
end script