diff --git a/dockertests/const.go b/dockertests/const.go
index ae2b662..26926ff 100644
--- a/dockertests/const.go
+++ b/dockertests/const.go
@@ -1,8 +1,20 @@
+// Copyright 2017 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package dockertests
 
 const (
-	dockerCsPort              string = "9000"
-	dockerSsPort              string = "9001"
 	pluginName                       = "apigeeSyncDockerTest"
 	configApidClusterId       = "apigeesync_cluster_id"
 	configProxyServerBaseURI         = "apigeesync_proxy_server_base"
diff --git a/dockertests/dockerCleanup.sh b/dockertests/dockerCleanup.sh
index 6a9437f..4ed8e0e 100755
--- a/dockertests/dockerCleanup.sh
+++ b/dockertests/dockerCleanup.sh
@@ -1,3 +1,18 @@
+#!/usr/bin/env bash
+#
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
 pgname=apidSync_test_pg
 ssname=apidSync_test_ss
 csname=apidSync_test_cs
diff --git a/dockertests/dockerSetup.sh b/dockertests/dockerSetup.sh
index 2e845be..8df2b5d 100755
--- a/dockertests/dockerSetup.sh
+++ b/dockertests/dockerSetup.sh
@@ -1,5 +1,20 @@
 #!/usr/bin/env bash
 
+#
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 WORK_DIR=$(pwd)
 TRANSICATOR_DIR="$GOPATH/src/github.com/apigee-labs/transicator"
 DOCKER_IP="192.168.9.1"
diff --git a/dockertests/dockerTest.sh b/dockertests/dockerTest.sh
index 5151f2f..5bde023 100755
--- a/dockertests/dockerTest.sh
+++ b/dockertests/dockerTest.sh
@@ -1,4 +1,19 @@
 #!/usr/bin/env bash
+#
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 source ./dockertests/dockerSetup.sh
 go test ./dockertests/*.go -v
 ./dockertests/dockerCleanup.sh
\ No newline at end of file
diff --git a/dockertests/docker_test.go b/dockertests/docker_test.go
index f00eaf6..1e0b24d 100644
--- a/dockertests/docker_test.go
+++ b/dockertests/docker_test.go
@@ -1,3 +1,17 @@
+// Copyright 2017 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package dockertests
 
 import (
@@ -100,7 +114,7 @@
 						sqliteDb, err := dataService.DBVersion(s.SnapshotInfo)
 						Expect(err).Should(Succeed())
 						Expect(verifyTestTable(targetTablename, sqliteDb)).To(BeTrue())
-						dropTestTable(targetTablename, sqliteDb)
+						dropTestTable(tableName, sqliteDb)
 						close(done)
 					}()
 				}
diff --git a/dockertests/management_pg.go b/dockertests/management_pg.go
index cb4239a..d46c8c6 100644
--- a/dockertests/management_pg.go
+++ b/dockertests/management_pg.go
@@ -1,3 +1,17 @@
+// Copyright 2017 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package dockertests
 
 import (
diff --git a/dockertests/mockAuthServer.go b/dockertests/mockAuthServer.go
index 2f43737..0dd0327 100644
--- a/dockertests/mockAuthServer.go
+++ b/dockertests/mockAuthServer.go
@@ -1,3 +1,17 @@
+// Copyright 2017 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package dockertests
 
 import (
diff --git a/dockertests/pg_table_data.go b/dockertests/pg_table_data.go
index 9b068be..12d047b 100644
--- a/dockertests/pg_table_data.go
+++ b/dockertests/pg_table_data.go
@@ -1,3 +1,17 @@
+// Copyright 2017 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package dockertests
 
 import "time"
