Coder Social home page Coder Social logo

jenkins-docker's Introduction

Jenkins CI Server

This is a Jenkins CI server with build dependencies installed

In addition this Jenkins comes pre configured to work with a local on premise Nexus service using the following environment variables (usually supplied via Kubernetes)

  • $NEXUS_SERVICE_HOST
  • $NEXUS_SERVICE_PORT

Running this container

docker run -it -p 8080:8080 --name jenkins -e SEED_GIT_URL=https://github.com/fabric8io/default-jenkins-dsl.git -e NEXUS_SERVICE_HOST=dockerhost -e NEXUS_SERVICE_PORT=8081 fabric8/jenkins

Where dockerhost is the host running nexus. You may wish to run nexus using these instructions

If dockerhost is the host running docker then you can view the running Jenkins at http://dockerhost:8080/

Environment variables

  • NEXUS_SERVICE_HOST host where nexus is running
  • NEXUS_SERVICE_PORT port where nexus is running

jenkins-docker's People

Contributors

christian-posta avatar iocanel avatar jimmidyson avatar jstrachan avatar kurtstam avatar msrb avatar rajdavies avatar rawlingsj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jenkins-docker's Issues

Scripts not permitted to use new io.fabric8.openshift.client.DefaultOpenShiftClient

Hi,
Since last week our jenkins jobs fails. We are not running the latest version of anything. The version of jenkins is 2.19.1.
The error is:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use new io.fabric8.openshift.client.DefaultOpenShiftClient

Is it possible for me to somewhere specify to use an older version of jenkins-docker?
Is it possible for me to migrate my jenkins-docker to the latest version without reinstalling fabric8?

Thanks,
Christer

Forbidden!Configured service account doesn't have access. Service account may have been revoked..

When trying to run a Jenkins job we are now getting:

SEVERE: Error in provisioning; slave=KubernetesSlave name: kubernetes-06843467478e4da2aa3d1dfe96079934-196809805b424, template=org.csanchez.jenkins.plugins.kubernetes.PodTemplate@5eadd457
io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: POST at: https://kubernetes.default/api/v1/namespaces/default/pods. Message: Forbidden!Configured service account doesn't have access. Service account may have been revoked..
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.requestFailure(OperationSupport.java:315)
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.assertResponseCode(OperationSupport.java:266)
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:237)
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:230)
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleCreate(OperationSupport.java:208)
	at io.fabric8.kubernetes.client.dsl.base.BaseOperation.handleCreate(BaseOperation.java:643)
	at io.fabric8.kubernetes.client.dsl.base.BaseOperation.create(BaseOperation.java:300)
	at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud$ProvisioningCallback.call(KubernetesCloud.java:557)
	at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud$ProvisioningCallback.call(KubernetesCloud.java:532)
	at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

Its very likely that this is a result of a change we have made. But we have documented most, if not all changes, and reviewed the Jenkins scc, and cannot see anything obvious.

Jenkins SCC

$ oc describe scc jenkins
Name:						jenkins
Priority:					99
Access:						
  Users:					system:serviceaccount:default:admin,system:serviceaccount:default:jenkins,admin
  Groups:					system:cluster-admins,system:nodes,system:serviceaccounts:default,root,jenkins
Settings:					
  Allow Privileged:				true
  Default Add Capabilities:			<none>
  Required Drop Capabilities:			<none>
  Allowed Capabilities:				<none>
  Allowed Volume Types:				*
  Allow Host Network:				true
  Allow Host Ports:				true
  Allow Host PID:				false
  Allow Host IPC:				false
  Read Only Root Filesystem:			false
  Run As User Strategy: RunAsAny		
    UID:					<none>
    UID Range Min:				<none>
    UID Range Max:				<none>
  SELinux Context Strategy: RunAsAny		
    User:					<none>
    Role:					<none>
    Type:					<none>
    Level:					<none>
  FSGroup Strategy: RunAsAny			
    Ranges:					<none>
  Supplemental Groups Strategy: RunAsAny	
    Ranges:					<none>

Unable to create the CD pipeline on none default team

When I create a new team and try and setup CI/CD I am unable to create a new application because the CI/CD platform is never marked as ready this is because the fabric8-forge pod will not start and errors:

Error creating: pods "fabric8-forge-2922195146-" is forbidden: service account testing/fabric8 was not found, retry after the service account is created

The template for CD does not however create a service account for fabric8-forge.

I am running Version: 1.0.73 of Fabric8 console which has been created locally on OS X using gofabric8:

gofabric8, version 0.4.133 (branch: 'unknown', revision: 'homebrew')
build date: '20170629-14:16:14'
go version: '1.8.3'

Questions: when and how to initialize environment variables

when I docker run jenkins-docker images, and I didn't find env variable FABRIC8_DOCKER_REGISTRY_SERVICE_HOST and FABRIC8_DOCKER_REGISTRY_SERVICE_PORT,

but when using fabric8 devops yaml file to create jenkins pod, then go to pod, input env command, then find FABRIC8_DOCKER_REGISTRY_SERVICE_HOST, FABRIC8_DOCKER_REGISTRY_SERVICE_PORT and lots of other variables, I searched yaml files, there isn't any related env definition, so how are the environment variables created?

jenkins yaml files:

https://github.com/fabric8io/fabric8-devops/tree/master/jenkins/src/main/fabric8

Thanks.

Jenkins POD won't start, error in PostStart handler

I installed a fresh instance of OpenShift and Fabric8 on a CentOS server today. So far so good, but when activating the CI/CD pipeline all components (gogs, nexus, forge etc.) start normally except for Jenkins.

In the event log I'm getting the following error:

Killing container with docker id a952eb5ee090: PostStart handler: Error executing in Docker Container: 1

I guess this has something to do with postStart.sh not executing as it should, but I'm not sure how I should debug this. I'm willing to provide more info, but please let know what you need.

[feature] : support for declarative pipelines

Looks like support for declarative pipelines is not there yet.

org.jenkinsci.plugins.pipeline.modeldefinition.DescriptorLookupCache.lookupStepOrFunction()
 is applicable for argument types: (java.lang.String) values: [sh]

Permissions Problems with Jenkins

Problem

When running a Jenkins job, job fails with:


[Pipeline] sh
[copy-of-sw] Running shell script
Executing shell script inside container [maven] of pod [kubernetes-b23305f2ea4d4f5ca6225ee0fe1d9db0-311b84f28bd9e]
Executing command: sh -c echo $$ > '/home/jenkins/workspace/copy-of-sw@tmp/durable-84010d23/pid'; jsc=durable-e271a92b5b252a3996e9c5847d57b90c; JENKINS_SERVER_COOKIE=$jsc '/home/jenkins/workspace/copy-of-sw@tmp/durable-84010d23/script.sh' > '/home/jenkins/workspace/copy-of-sw@tmp/durable-84010d23/jenkins-log.txt' 2>&1; echo $? > '/home/jenkins/workspace/copy-of-sw@tmp/durable-84010d23/jenkins-result.txt' 
$ cd /home/jenkins/workspace/copy-of-sw
sh -c echo $$ > '/home/jenkins/workspace/copy-of-sw@tmp/durable-84010d23/pid'; jsc=durable-e271a92b5b252a3996e9c5847d57b90c; JENKINS_SERVER_COOKIE=$jsc '/home/jenkins/workspace/copy-of-sw@tmp/durable-84010d23/script.sh' > '/home/jenkins/workspace/copy-of-sw@tmp/durable-84010d23/jenkins-log.txt' 2>&1; echo $? > '/home/jenkins/workspace/copy-of-sw@tmp/durable-84010d23/jenkins-result.txt' 
exit
$ /bin/sh: 2: cannot create /home/jenkins/workspace/copy-of-sw@tmp/durable-84010d23/pid: Permission denied
/bin/sh: 2: cannot create /home/jenkins/workspace/copy-of-sw@tmp/durable-84010d23/jenkins-log.txt: Permission denied
/bin/sh: 2: cannot create /home/jenkins/workspace/copy-of-sw@tmp/durable-84010d23/jenkins-result.txt: Permission denied
$ command terminated with non-zero exit code: Error executing in Docker Container: 2[Pipeline] }
[Pipeline] // container
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // podTemplate
[Pipeline] End of Pipeline
ERROR: script returned exit code -2
Finished: FAILURE

Describe Pod


name:			jenkins-1-fmkhf
Namespace:		default
Security Policy:	jenkins
Node:			176.9.36.15/176.9.36.15
Start Time:		Mon, 06 Feb 2017 10:22:47 +0100
Labels:			deployment=jenkins-1
			deploymentconfig=jenkins
			group=io.fabric8.devops.apps
			project=jenkins
			provider=fabric8
			version=2.2.311
Status:			Running
IP:			172.17.0.5
Controllers:		ReplicationController/jenkins-1
Init Containers:
  init:
    Container ID:	docker://fba4e604ace68b779201c95fb650b15b051895ff56e7a937d2fe079765c9476d
    Image:		busybox
    Image ID:		docker-pullable://docker.io/busybox@sha256:817a12c32a39bbe394944ba49de563e085f1d3c5266eb8e9723256bc4448680e
    Port:		
    Command:
      chmod
      777
      /var/jenkins_home/workspace
      /var/jenkins_home/jobs
    State:		Terminated
      Reason:		Completed
      Exit Code:	0
      Started:		Mon, 06 Feb 2017 10:22:57 +0100
      Finished:		Mon, 06 Feb 2017 10:22:57 +0100
    Ready:		True
    Restart Count:	0
    Volume Mounts:
      /var/jenkins_home/jobs from jenkins-jobs (rw)
      /var/jenkins_home/workspace from jenkins-workspace (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from jenkins-token-t7v0j (ro)
    Environment Variables:	<none>
Containers:
  jenkins:
    Container ID:	docker://2d11d0ac717a8460c303d97ee6c6a80f3c828b2e268c3f18bb878935c31bb028
    Image:		fabric8/jenkins-docker:2.2.311
    Image ID:		docker-pullable://docker.io/fabric8/jenkins-docker@sha256:d2da5a18524d06ec9e310efa4c11d96d6cc2f77309a13f8077dfe08ba762a71e
    Ports:		50000/TCP, 8080/TCP
    Limits:
      cpu:	0
      memory:	0
    Requests:
      cpu:		0
      memory:		0
    State:		Running
      Started:		Mon, 06 Feb 2017 10:23:02 +0100
    Ready:		True
    Restart Count:	0
    Liveness:		http-get http://:8080/blue/ delay=120s timeout=10s period=10s #success=1 #failure=3
    Readiness:		http-get http://:8080/blue/ delay=20s timeout=10s period=10s #success=1 #failure=3
    Volume Mounts:
      /var/jenkins_home/jobs from jenkins-jobs (rw)
      /var/jenkins_home/workspace from jenkins-workspace (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from jenkins-token-t7v0j (ro)
    Environment Variables:
      PROJECT_VERSION:			<set to the key 'project-version' of config map 'jenkins'>
      PIPELINE_ELASTICSEARCH_PROTOCOL:	<set to the key 'pipeline-elasticsearch-protocol' of config map 'jenkins'>
      JENKINS_GOGS_PASSWORD:		<set to the key 'jenkins-gogs-password' of config map 'jenkins'>
      JENKINS_GOGS_USER:		<set to the key 'jenkins-gogs-user' of config map 'jenkins'>
      JENKINS_GOGS_EMAIL:		<set to the key 'jenkins-gogs-email' of config map 'jenkins'>
      PIPELINE_ELASTICSEARCH_HOST:	<set to the key 'pipeline-elasticsearch-host' of config map 'jenkins'>
      KUBERNETES_NAMESPACE:		default (v1:metadata.namespace)
      KUBERNETES_MASTER:		https://kubernetes.default
Conditions:
  Type		Status
  Initialized 	True 
  Ready 	True 
  PodScheduled 	True 
Volumes:
  jenkins-jobs:
    Type:	PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:	jenkins-jobs
    ReadOnly:	false
  jenkins-workspace:
    Type:	PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:	jenkins-workspace
    ReadOnly:	false
  jenkins-token-t7v0j:
    Type:	Secret (a volume populated by a Secret)
    SecretName:	jenkins-token-t7v0j
QoS Class:	BestEffort
Tolerations:	<none>
Events:
  FirstSeen	LastSeen	Count	From			SubobjectPath			Type		Reason		Message
  ---------	--------	-----	----			-------------			--------	------		-------
  9m		9m		1	{default-scheduler }					Normal		Scheduled	Successfully assigned jenkins-1-fmkhf to 176.9.36.15
  9m		9m		1	{kubelet 176.9.36.15}	spec.initContainers{init}	Normal		Pulled		Container image "busybox" already present on machine
  9m		9m		1	{kubelet 176.9.36.15}	spec.initContainers{init}	Normal		Created		Created container with docker id fba4e604ace6; Security:[seccomp=unconfined]
  9m		9m		1	{kubelet 176.9.36.15}	spec.initContainers{init}	Normal		Started		Started container with docker id fba4e604ace6
  9m		9m		1	{kubelet 176.9.36.15}	spec.containers{jenkins}	Normal		Pulled		Container image "fabric8/jenkins-docker:2.2.311" already present on machine
  9m		9m		1	{kubelet 176.9.36.15}	spec.containers{jenkins}	Normal		Created		Created container with docker id 2d11d0ac717a; Security:[seccomp=unconfined]
  9m		9m		1	{kubelet 176.9.36.15}	spec.containers{jenkins}	Normal		Started		Started container with docker id 2d11d0ac717a
  8m		8m		2	{kubelet 176.9.36.15}	spec.containers{jenkins}	Warning		Unhealthy	Readiness probe failed: HTTP probe failed with statuscode: 503

Describe Jenkins SCC

$ oc describe scc jenkins
Name:						jenkins
Priority:					99
Access:						
  Users:					system:serviceaccount:default:admin,system:serviceaccount:default:jenkins,admin
  Groups:					system:cluster-admins,system:nodes
Settings:					
  Allow Privileged:				true
  Default Add Capabilities:			<none>
  Required Drop Capabilities:			<none>
  Allowed Capabilities:				<none>
  Allowed Volume Types:				*
  Allow Host Network:				true
  Allow Host Ports:				true
  Allow Host PID:				false
  Allow Host IPC:				false
  Read Only Root Filesystem:			false
  Run As User Strategy: RunAsAny		
    UID:					<none>
    UID Range Min:				<none>
    UID Range Max:				<none>
  SELinux Context Strategy: RunAsAny		
    User:					<none>
    Role:					<none>
    Type:					<none>
    Level:					<none>
  FSGroup Strategy: RunAsAny			
    Ranges:					<none>
  Supplemental Groups Strategy: RunAsAny	
    Ranges:					<none>

Jenkinsfile

#!/usr/bin/groovy
@Library('github.com/fabric8io/fabric8-pipeline-library@master')
def failIfNoTests = ""
try {
  failIfNoTests = ITEST_FAIL_IF_NO_TEST
} catch (Throwable e) {
  failIfNoTests = "false"
}

def itestPattern = ""
try {
  itestPattern = ITEST_PATTERN
} catch (Throwable e) {
  itestPattern = "*KT"
}

def versionPrefix = ""
try {
  versionPrefix = VERSION_PREFIX
} catch (Throwable e) {
  versionPrefix = "1.0"
}

def canaryVersion = "${versionPrefix}.${env.BUILD_NUMBER}"
def utils = new io.fabric8.Utils()
def buildLabel = "mylabel.${env.JOB_NAME}.${env.BUILD_NUMBER}".replace('-', '_').replace('/', '_')

podTemplate(label: buildLabel, 
 containers: [containerTemplate(alwaysPullImage: false, args: 'cat', command: '/bin/sh -c', 
        envVars: [
                    containerEnvVar(key: 'DOCKER_CONFIG', value: '/home/jenkins/.docker/')], 
        image: 'jhipster/jhipster', name: 'maven', privileged: true, resourceLimitCpu: '', resourceLimitMemory: '', resourceRequestCpu: '', resourceRequestMemory: '', ttyEnabled: true, workingDir: '/home/jenkins')],
 volumes: [hostPathVolume(hostPath: '/var/run/docker.sock', mountPath: '/var/run/docker.sock'), secretVolume(mountPath: '/root/.m2', secretName: 'jenkins-maven-settings'), secretVolume(mountPath: '/home/jenkins/.docker', secretName: 'jenkins-docker-cfg')],
 serviceAccount: 'jenkins') {
    node(buildLabel) {
        container(name: 'maven') {
  def envProd = 'shiftwork-production'

  checkout scm



    stage 'Canary Release'
    mavenCanaryRelease{
      version = canaryVersion
    }

    stage 'Integration Test'
    mavenIntegrationTest{
      environment = 'Testing'
      failIfNoTests = localFailIfNoTests
      itestPattern = localItestPattern
    }

    stage 'Rolling Upgrade Production'
    def rc = readFile 'target/classes/kubernetes.json'
    kubernetesApply(file: rc, environment: envProd)
   }
  }
}

Attempted fixes

  • oadm policy add-scc-to-user anyuid system:serviceaccount:default:jenkins //didnt work
  • oadm policy add-scc-to-user privileged system:serviceaccount:default:jenkins //didnt work
  • oadm policy add-scc-to-group jenkins root //didnt work
  • Try to set Jenkins DC to privlidged, but blocked by openshift/origin-web-console#1221

PR #1 for jenkins-docker

hey, so i've got a PR to update the jenkins-docker image to add a conditional-buildstep plugin (i may have commit rights to this, but wanted to make the PR explicit to chat about it really quick... when i try to run docker build for this image, i get issues with rpm repos, etc. how do we generate a new image of this that can get into docker hub?

Use install-plugins.sh

plugins.sh is now deprecated, and install-plugins.sh should be used instead. This enables the plugin list without versions (which defaults then to latest).

Could be a way to get rid of the "Version Bump" process for plugins.

latest jenkins base image and upgrades break java app piplines

Started by user anonymous
Cloning the remote Git repository
remote: Counting objects
remote: Compressing objects
Receiving objects
Resolving deltas
Updating references
Checking out Revision 3a1cb756174d16ab0b4e78ace848d34c13e450b8 (refs/remotes/origin/master)
First time build. Skipping changelog.
[Pipeline] node
Running on 7be8c21abf99b in /home/jenkins/workspace/workspace/jr-micro2
[Pipeline] {
[Pipeline] git
Cloning the remote Git repository
remote: Counting objects
remote: Compressing objects
Receiving objects
Resolving deltas
Updating references
Checking out Revision 3a1cb756174d16ab0b4e78ace848d34c13e450b8 (refs/remotes/origin/master)
[Pipeline] echo
NOTE: running pipelines for the first time will take longer as build and base docker images are pulled onto the node
[Pipeline] withPod
[Pipeline] {
[Pipeline] stage (Canary Release)
Entering stage Canary Release
Proceeding
[Pipeline] sh
[jr-micro2] Running shell script
�[?1034hsh-4.2# sh -c echo $$ > '/home/jenkins/workspace/workspace/jr-micro2@tmp/durable 
-f8a8074d/pid'; jsc=durable-3e0dc98e0ebc71e5c95dc24ddd971fdb; JENKINS_SERVER_COO 
KIE=$jsc '/home/jenkins/workspace/workspace/jr-micro2@tmp/durable-f8a8074d/scrip 
t.sh' > '/home/jenkins/workspace/workspace/jr-micro2@tmp/durable-f8a8074d/jenkin 
s-log.txt' 2>&1; echo $? > '/home/jenkins/workspace/workspace/jr-micro2@tmp/dura 
ble-f8a8074d/jenkins-result.txt' 
sh: /home/jenkins/workspace/workspace/jr-micro2@tmp/durable-f8a8074d/pid: No such file or directory
sh: /home/jenkins/workspace/workspace/jr-micro2@tmp/durable-f8a8074d/jenkins-log.txt: No such file or directory
sh: /home/jenkins/workspace/workspace/jr-micro2@tmp/durable-f8a8074d/jenkins-result.txt: No such file or directory
sh-4.2# exit
exit
Error executing command in container: Error executing in Docker Container: 1[Pipeline] }
[Pipeline] // withPod
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Unable to connect to Elasticsearch service. Check Elasticsearch is running in the correct namespace
ERROR: script returned exit code -2
Finished: FAILURE

groovy.lang.MissingMethodException for Kubernetes Client

Hi,

I tried to use the latest version of the Fabric8 Jenkins Image (fabric8/jenkins-docker:2.2.328) , but when I try to run something a Pod, it throws an exception.

Here the code snippet:
kubernetes.pod('buildpod').withImage('alpine').inside { sh 'echo "Hello from Alpine"' }

And the exception:
hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate.setAlwaysPullImage() is applicable for argument types: (null) values: [null] Possible solutions: setAlwaysPullImage(boolean), isAlwaysPullImage()

Could you please tell me when I could do on that?

fabric8/jenkins-docker will change JAVA_HOME and hide jdk?

I was using fabric8/jenkins-docker:2.2.288 and found tools.jar missing in jenkins's job running. So I checked fabric8/jenkins-docker image and its base image as follows:

image

It seems that in jenkins:2.19.1-alpine jdk is installed properly but in fabric8/jenkins-docker:2.2.288 jdk is missing - only jre is still there. I'm not sure if it's because of RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt.

Now my jenkins job will fail because of missing tools.jar. Any help?

Thank you very much.

Idea: Replace interpolate_env() with gettext-base

This repository helped me a lot setting up a custom Docker image for jenkins...thanks!

Just to let you know: instead of the custom interpolate_env() function you could install the debian package gettext-base and run:
envsubst < /var/jenkins_home/config.xml > /var/jenkins_home/config.xml
(not 100% sure that you can write to the same file - if not just name one config.xml.template)

The only feature you lose is the output of the substitutions made.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.