# Get MMS Base Python 3.6 CPU image on Ubuntu 16.04 base FROM awsdeeplearningteam/mxnet-model-server:base-cpu-py3.6 LABEL com.amazonaws.sagemaker.capabilities.accept-bind-to-port=true LABEL com.amazonaws.sagemaker.capabilities.multi-models=true COPY dummy/mme_handler_service.py /mme_handler_service.py # Setup Environment for MME ENV SAGEMAKER_MULTI_MODEL=true ENV SAGEMAKER_BIND_TO_PORT=${SAGEMAKER_BIND_TO_PORT:-8080} # Update MMS version RUN pip3 install multi-model-server # Install Mxnet (for handler_service) RUN pip3 install mxnet WORKDIR / COPY sagemaker_inference.tar.gz /sagemaker_inference.tar.gz RUN pip3 install --no-cache-dir /sagemaker_inference.tar.gz \ && rm /sagemaker_inference.tar.gz # download models to model_store RUN mkdir resnet_152 \ && cd resnet_152 \ && wget -O resnet-152-0000.params http://data.mxnet.io/models/imagenet/resnet/152-layers/resnet-152-0000.params \ && wget -O resnet-152-symbol.json http://data.mxnet.io/models/imagenet/resnet/152-layers/resnet-152-symbol.json \ && wget -O synset.txt http://data.mxnet.io/models/imagenet/synset.txt \ && echo '[{"shape": [1, 3, 224, 224], "name": "data"}]' > resnet-152-shapes.json \ && cd .. RUN mkdir resnet_18 \ && cd resnet_18 \ && wget -O resnet-18-0000.params http://data.mxnet.io/models/imagenet/resnet/18-layers/resnet-18-0000.params \ && wget -O resnet-18-symbol.json http://data.mxnet.io/models/imagenet/resnet/18-layers/resnet-18-symbol.json \ && wget -O synset.txt http://data.mxnet.io/models/imagenet/synset.txt \ && echo '[{"shape": [1, 3, 224, 224], "name": "data"}]' > resnet-18-shapes.json \ && cd .. COPY dummy/mms-entrypoint.py /usr/local/bin/dockerd-entrypoint.py RUN mkdir -p /home/model-server/ COPY dummy/mme_handler_service.py /home/model-server/mme_handler_service.py ENV SAGEMAKER_HANDLER="/home/model-server/mme_handler_service.py:handle" EXPOSE 8080 ENTRYPOINT ["python", "/usr/local/bin/dockerd-entrypoint.py"] CMD ["serve"]