mirror of https://github.com/docker/docs.git
Fix the bug that start container mess the host config
Signed-off-by: Xianlu <xianlu.cxl@alibaba-inc.com>
This commit is contained in:
parent
0524ead8da
commit
a3986cac05
|
@ -797,7 +797,7 @@ func postContainersStart(c *context, w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
r.Body.Close()
|
||||
|
||||
if len(buf) <= 2 {
|
||||
if len(buf) <= 2 || (len(buf) == 4 && string(buf) == "null") {
|
||||
hostConfig = nil
|
||||
} else {
|
||||
if err := json.Unmarshal(buf, hostConfig); err != nil {
|
||||
|
|
|
@ -48,3 +48,27 @@ function teardown() {
|
|||
run docker_swarm inspect test_container
|
||||
[[ "${output}" == *'"PublishAllPorts": true'* ]]
|
||||
}
|
||||
|
||||
@test "docker start with null hostConfig" {
|
||||
start_docker_with_busybox 2
|
||||
swarm_manage
|
||||
|
||||
# create with PublishAllPorts true
|
||||
docker_swarm create --name test_container -P busybox sleep 1000
|
||||
|
||||
# make sure created container exists
|
||||
# new created container has no status
|
||||
run docker_swarm ps -l
|
||||
[ "${#lines[@]}" -eq 2 ]
|
||||
[[ "${lines[1]}" == *"test_container"* ]]
|
||||
|
||||
# start with null hostConfig
|
||||
curl -s -H "Content-Type: application/json" -X POST -d 'null' ${SWARM_HOSTS[0]}/v1.23/containers/test_container/start
|
||||
|
||||
# Verify
|
||||
[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]
|
||||
|
||||
# Inspect HostConfig of container, should have PublishAllPorts set to true
|
||||
run docker_swarm inspect test_container
|
||||
[[ "${output}" == *'"PublishAllPorts": true'* ]]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue