소스 검색

Merge pull request #9287 from drothlis/fix-upstart-race-condition

upstart: Don't emit "started" event until docker.sock is available
Jessie Frazelle 10 년 전
부모
커밋
ad8096a1c2
1개의 변경된 파일17개의 추가작업 그리고 0개의 파일을 삭제
  1. 17 0
      contrib/init/upstart/docker.conf

+ 17 - 0
contrib/init/upstart/docker.conf

@@ -39,3 +39,20 @@ script
 	fi
 	fi
 	exec "$DOCKER" -d $DOCKER_OPTS
 	exec "$DOCKER" -d $DOCKER_OPTS
 end script
 end script
+
+# Don't emit "started" event until docker.sock is ready.
+# See https://github.com/docker/docker/issues/6647
+post-start script
+	DOCKER_OPTS=
+	if [ -f /etc/default/$UPSTART_JOB ]; then
+		. /etc/default/$UPSTART_JOB
+	fi
+	if ! printf "%s" "$DOCKER_OPTS" | grep -qE -e '-H|--host'; then
+		while ! [ -e /var/run/docker.sock ]; do
+			initctl status $UPSTART_JOB | grep -q "stop/" && exit 1
+			echo "Waiting for /var/run/docker.sock"
+			sleep 0.1
+		done
+		echo "/var/run/docker.sock is up"
+	fi
+end script