Skip to content

Commit

Permalink
Merge pull request #6238 from mxm/job-server-startup
Browse files Browse the repository at this point in the history
  • Loading branch information
mxm committed Aug 17, 2018
2 parents e5bb291 + 102a972 commit d44a54d
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 0 deletions.
26 changes: 26 additions & 0 deletions runners/flink/job-server-container/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
###############################################################################
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
###############################################################################

FROM openjdk:8
MAINTAINER "Apache Beam <dev@beam.apache.org>"

ADD target/beam-runners-flink_2.11-job-server.jar /opt/apache/beam/jars/
ADD target/flink-job-server.sh /opt/apache/beam/

WORKDIR /opt/apache/beam
ENTRYPOINT ["./flink-job-server.sh"]
54 changes: 54 additions & 0 deletions runners/flink/job-server-container/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/

/**
* Build a Docker image to bootstrap FlinkJobServerDriver which requires a Java environment.
* Alternatively, it can also be bootstrapped through :beam-runners-flink_2.11-job-server:runShadow
* or by directly running the generated JAR file.
*/

apply plugin: org.apache.beam.gradle.BeamModulePlugin
applyDockerNature()

description = "Apache Beam :: Runners :: Flink :: Job Server :: Container"

configurations {
dockerDependency
}

dependencies {
dockerDependency project(path: ":beam-runners-flink_2.11-job-server", configuration: "shadow")
}

task copyDockerfileDependencies(type: Copy) {
// Required Jars
from configurations.dockerDependency
rename 'beam-runners-flink_2.11-job-server.*.jar', 'beam-runners-flink_2.11-job-server.jar'
into "build/target"
// Entry script
from file("./flink-job-server.sh")
into "build/target"
}

docker {
name containerImageName(name: "flink-job-server")
files "./build/"
}

// Ensure that we build the required resources and copy and file dependencies from related projects
dockerPrepare.dependsOn copyDockerfileDependencies
29 changes: 29 additions & 0 deletions runners/flink/job-server-container/flink-job-server.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/sh
###############################################################################
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
###############################################################################

### Just a simple script to bootstrap the FlinkJobServerDriver
### For the environment, see the Dockerfile

# The following (forking to the background, then waiting) enables to use CTRL+C to kill the container.
# We're PID 1 which doesn't handle signals. By forking the Java process to the background,
# a PID > 1 is created which handles signals. After the command shuts down, the script and
# thus the container will also exit.

java -cp "jars/*" org.apache.beam.runners.flink.FlinkJobServerDriver "$@" &
wait
2 changes: 2 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ include "beam-runners-flink_2.11"
project(":beam-runners-flink_2.11").dir = file("runners/flink")
include "beam-runners-flink_2.11-job-server"
project(":beam-runners-flink_2.11-job-server").dir = file("runners/flink/job-server")
include "beam-runners-flink_2.11-job-server-container"
project(":beam-runners-flink_2.11-job-server-container").dir = file("runners/flink/job-server-container")
include "beam-runners-gcp-gcemd"
project(":beam-runners-gcp-gcemd").dir = file("runners/gcp/gcemd")
include "beam-runners-gcp-gcsproxy"
Expand Down

0 comments on commit d44a54d

Please sign in to comment.