Swagger-codegen: docker run generate fails with "Could not find X on the classpath"

Created on 27 Jul 2019  路  2Comments  路  Source: swagger-api/swagger-codegen

Description

When running docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate -l python -i ../product/openapi.yml it results in java errors.

[main] INFO io.swagger.parser.Swagger20Parser - reading from ../cosmo/openapi.yml
[main] INFO io.swagger.parser.Swagger20Parser - reading from ../cosmo/openapi.yml
[main] ERROR io.swagger.parser.SwaggerCompatConverter - failed to read resource listing
java.lang.RuntimeException: Could not find ../product/openapi.yml on the classpath
        at io.swagger.parser.util.ClasspathHelper.loadFileFromClasspath(ClasspathHelper.java:31)
        at io.swagger.parser.SwaggerCompatConverter.readResourceListing(SwaggerCompatConverter.java:206)
        at io.swagger.parser.SwaggerCompatConverter.read(SwaggerCompatConverter.java:122)
        at io.swagger.parser.SwaggerParser.read(SwaggerParser.java:75)
        at io.swagger.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:431)
        at io.swagger.codegen.cmd.Generate.run(Generate.java:283)
        at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:35)
[main] INFO io.swagger.codegen.ignore.CodegenIgnoreProcessor - No .swagger-codegen-ignore file found.
Exception in thread "main" java.lang.RuntimeException: missing swagger input or config!
        at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:735)
        at io.swagger.codegen.cmd.Generate.run(Generate.java:285)
        at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:35)
Swagger-codegen version

Latest Digest: sha256:510220aecb77fb9c196bf4ee7a65543544927f0fb58be0540e66351bf8b0f99e

Swagger declaration file content or url

Any yml

Command line used for generation

docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate -l python -i ../product/openapi.yml

Most helpful comment

@Nogbit
make sure that you know what's going on inside the docker container, note the difference between

docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate -l python -i ../product/openapi.yml

and

docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate -l python -i /local/product/openapi.yml

(file paths passed to process being started in the docker container have to be container-relative)

Happy hacking!

All 2 comments

I was able to run the homebrew version and see the validation error thrown by java, totally different from this issue and will re-open with required info.

@Nogbit
make sure that you know what's going on inside the docker container, note the difference between

docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate -l python -i ../product/openapi.yml

and

docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate -l python -i /local/product/openapi.yml

(file paths passed to process being started in the docker container have to be container-relative)

Happy hacking!

Was this page helpful?
0 / 5 - 0 ratings