diff options
| -rw-r--r-- | Dockerfile | 3 | ||||
| -rw-r--r-- | README.md | 4 | ||||
| -rw-r--r-- | Smarker/misc_classes.py | 1 | ||||
| -rw-r--r-- | Smarker/smarker.py | 10 | 
4 files changed, 15 insertions, 3 deletions
| @@ -7,5 +7,6 @@ RUN apt-get install -y python3-pip python3-dev build-essential texlive-base wkht  COPY ./Smarker /Smarker  WORKDIR /Smarker  RUN pip3 install -r requirements.txt -ENTRYPOINT ["python3"] +RUN ln -s /usr/bin/python3 /usr/bin/python +ENTRYPOINT ["python"]  CMD ["smarker.py"]
\ No newline at end of file @@ -1,2 +1,6 @@  # Smarker  An automated marking system for UEA programming assessments + +## Running in docker + +`sudo docker run -v "$(pwd)/../wsData.txt":/wsData.txt -v "$(pwd)/ExampleAssessments/CMP-4009B.yml":/tmp/CMP-4009.yml -v "$(pwd)/../ExampleSubmissions/123456789.zip":/tmp/123456789.zip -e submission=/tmp/123456789.zip -e assessment=/tmp/CMP-4009.yml -e SMARKERDEPS=matplotlib smarker` diff --git a/Smarker/misc_classes.py b/Smarker/misc_classes.py index 17ad36a..7ab37de 100644 --- a/Smarker/misc_classes.py +++ b/Smarker/misc_classes.py @@ -20,6 +20,7 @@ latex_jinja_env = jinja2.Environment(  	loader = jinja2.FileSystemLoader(os.path.abspath(os.path.join(os.path.split(__file__)[0], "templates")))
  )
 +# https://stackoverflow.com/questions/10551117/setting-options-from-environment-variables-when-using-argparse
  class EnvDefault(argparse.Action):
      def __init__(self, envvar, required=True, default=None, **kwargs):
          if not default and envvar:
 diff --git a/Smarker/smarker.py b/Smarker/smarker.py index 106d426..46feb5f 100644 --- a/Smarker/smarker.py +++ b/Smarker/smarker.py @@ -72,7 +72,7 @@ if __name__ == "__main__":          action = misc_classes.EnvDefault,          envvar = "assessment",          help = "Path to an assessment .yml file", -        type = os.path.abspath, +        # type = os.path.abspath,          required = True      )      parser.add_argument( @@ -80,7 +80,7 @@ if __name__ == "__main__":          action = misc_classes.EnvDefault,          envvar = "submission",          help = "Path to a zip of a student's code", -        type = os.path.abspath, +        # type = os.path.abspath,          required = True      )      parser.add_argument( @@ -110,6 +110,12 @@ if __name__ == "__main__":                  help = "Optional argument inherited from config file. Read smarker.conf for details."              ) +    try: +        for dependency in os.environ["SMARKERDEPS"].split(","): +            subprocess.run(["pip", "install", dependency]) +    except KeyError: +        pass +      args = vars(parser.parse_args())      main(**args)          
\ No newline at end of file | 
