Initial outline of opencord integration repo
- Vagrantfile to support standardized 'corddev' development environment
- Ansible playbooks to properly bring up devenv
- Gradle build structure
- Gradle plugin to manage docker-based workflow (pull, build, run, tag,
push, etc.)
- Gradle top-level build file to allow pre-fetching and publishing
component docker images. Supported main tasks: fetch, publish
- Example to how to manage 'as-is' upstream components
- A cleaner way of handling gradle rules
- Added initial content to README.md
- Added initial content to docs/quickstart.md
- Updated .gitignore
- Placeholder, parametric entry for deploy step
- Placeholder deployment profile config file (config/default.yml)
Change-Id: I0ff82e0aa3a5299422bd500f9ab8e41e4814a7ca
diff --git a/components/nginx/build.gradle b/components/nginx/build.gradle
new file mode 100644
index 0000000..8980e82
--- /dev/null
+++ b/components/nginx/build.gradle
@@ -0,0 +1,66 @@
+plugins {
+ id "com.github.ben-manes.versions" version "0.12.0"
+ id "de.gesellix.docker" version "2016-05-05T13-15-11"
+}
+
+import de.gesellix.gradle.docker.tasks.*
+
+import static groovy.json.JsonOutput.prettyPrint
+import static groovy.json.JsonOutput.toJson
+
+allprojects {
+ apply plugin: 'base'
+ apply plugin: 'de.gesellix.docker'
+ docker {
+ // dockerHost = System.env.DOCKER_HOST ?: 'unix:///var/run/docker.sock'
+ // dockerHost = System.env.DOCKER_HOST ?: 'https://192.168.99.100:2376'
+ // certPath = System.getProperty('docker.cert.path') ?: "${System.getProperty('user.home')}/.docker/machine/machines/default"
+ // authConfigPlain = [
+ // "username" : "joe",
+ // "password" : "some-pw-as-needed",
+ // "email" : "joe@acme.com",
+ // "serveraddress" : "https://index.docker.io/v1/"
+ // ]
+ }
+}
+
+task ping(type: DockerPingTask) {
+ doLast { println prettyPrint(toJson(result.content)) }
+}
+
+task info(type: DockerInfoTask) {
+ doLast { println prettyPrint(toJson(info)) }
+}
+
+task version(type: DockerVersionTask) {
+ doLast { println prettyPrint(toJson(version)) }
+}
+
+//task publish(type: DockerPublishTask) {
+// imageName = 'nginx'
+// imageTag = 'cand'
+// buildContextDirectory = file('./docker/')
+// targetRegistries = [
+// dev: "localhost:5000"
+// ]
+//}
+
+task fetch(type: DockerPullTask) {
+ imageName = 'nginx@sha256:b555f8c64ab4e85405e0d8b03f759b73ce88deb802892a3b155ef55e3e832806'
+ // tag = 'sha256:b555f8c64ab4e85405e0d8b03f759b73ce88deb802892a3b155ef55e3e832806'
+ // tag = '1.10.0'
+ // authConfigPlain = getDockerClient().readDefaultAuthConfig()
+}
+
+task tag(type: DockerTagTask) {
+ dependsOn fetch
+ imageId = 'nginx@sha256:b555f8c64ab4e85405e0d8b03f759b73ce88deb802892a3b155ef55e3e832806'
+ tag = 'nginx:cand'
+}
+
+task publish(type: DockerPushTask) {
+ dependsOn tag
+
+ repositoryName = 'nginx:cand'
+ registry = 'localhost:5000'
+}