diff --git a/docker/serverless/Dockerfile.with_config b/docker/serverless/Dockerfile.with_config new file mode 100644 index 000000000..0b933f575 --- /dev/null +++ b/docker/serverless/Dockerfile.with_config @@ -0,0 +1,7 @@ +# Serverless ESP docker image with build-in service config +FROM _SERVERLESS_IMAGE + +ENV ENDPOINTS_SERVICE_PATH /etc/nginx/service.json +COPY service.json ${ENDPOINTS_SERVICE_PATH} + +ENTRYPOINT ["/env-start-esp.py"] diff --git a/docker/serverless/env-start-esp.py b/docker/serverless/env-start-esp.py index 61ec06343..f64a37311 100755 --- a/docker/serverless/env-start-esp.py +++ b/docker/serverless/env-start-esp.py @@ -68,21 +68,29 @@ def main(): assert_env_var("PORT") ARGS.append("--http_port={}".format(os.environ["PORT"])) - try: - assert_env_var("ENDPOINTS_SERVICE_NAME") - except KeyError as error: - serve_error_msg(error.message) - ARGS.append("--service={}".format(os.environ["ENDPOINTS_SERVICE_NAME"])) - - if "ENDPOINTS_SERVICE_VERSION" in os.environ: + if "ENDPOINTS_SERVICE_PATH" in os.environ: ARGS.extend( [ "--rollout_strategy=fixed", - "--version={}".format(os.environ["ENDPOINTS_SERVICE_VERSION"]), + "--service_json_path={}".format(os.environ["ENDPOINTS_SERVICE_PATH"]), ] ) else: - ARGS.append("--rollout_strategy=managed") + try: + assert_env_var("ENDPOINTS_SERVICE_NAME") + except KeyError as error: + serve_error_msg(error.message) + ARGS.append("--service={}".format(os.environ["ENDPOINTS_SERVICE_NAME"])) + + if "ENDPOINTS_SERVICE_VERSION" in os.environ: + ARGS.extend( + [ + "--rollout_strategy=fixed", + "--version={}".format(os.environ["ENDPOINTS_SERVICE_VERSION"]), + ] + ) + else: + ARGS.append("--rollout_strategy=managed") if "CORS_PRESET" in os.environ: ARGS.append("--cors_preset={}".format(os.environ["CORS_PRESET"])) diff --git a/start_esp/start_esp.py b/start_esp/start_esp.py index fab43d9e0..2fda9d6bc 100755 --- a/start_esp/start_esp.py +++ b/start_esp/start_esp.py @@ -968,8 +968,6 @@ def enforce_conflict_args(args): return "Flag --enable_backend_routing cannot be used together with --service_control_url_override." if args.metadata != METADATA_ADDRESS: return "Flag --enable_backend_routing cannot be used together with --metadata." - if args.service_json_path: - return "Flag --enable_backend_routing cannot be used together with --service_json_path." if args.worker_processes != DEFAULT_WORKER_PROCESSES: return "Flag --enable_backend_routing cannot be used together with --worker_processes." if args.rewrite: