Last active
March 27, 2018 18:59
-
-
Save bochsdbg/3779848bafc8f6820f2e144e7333a6f1 to your computer and use it in GitHub Desktop.
Test dockerfile for aicup
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
if [ $# -ne 2 ]; then | |
cat <<HELP | |
Usage: $0 <sources_path> <container_name> | |
sources_path -- path to example source file or directory | |
container_name -- running container's name (to get the last started container, you can use $(docker ps -l -q)) | |
HELP | |
exit 1 | |
fi | |
SOURCES_PATH=$1 | |
CONTAINER_NAME=$2 | |
docker exec "${CONTAINER_NAME}" bash -c 'rm -rf ${SOLUTION_CODE_PATH} && mkdir -p "${SOLUTION_CODE_PATH}"' | |
SOLUTION_CODE_PATH=$(docker exec ${CONTAINER_NAME} printenv SOLUTION_CODE_PATH) | |
SOLUTION_CODE_ENTRYPOINT=$(docker exec ${CONTAINER_NAME} printenv SOLUTION_CODE_ENTRYPOINT) | |
if [ -d "${SOURCES_PATH}" ]; then | |
docker cp "${SOURCES_PATH}/." "${CONTAINER_NAME}:${SOLUTION_CODE_PATH}" | |
else | |
docker cp "${SOURCES_PATH}" "${CONTAINER_NAME}:${SOLUTION_CODE_PATH}/${SOLUTION_CODE_ENTRYPOINT}" | |
fi | |
docker exec -w /opt/client "${CONTAINER_NAME}" bash -c 'eval "${COMPILATION_COMMAND}" && eval "${RUN_COMMAND}"' | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM ubuntu:16.04 | |
MAINTAINER Sergey Samokhvalov <onlyforthesky@gmail.com> | |
# environment variables to be changed | |
ENV SOLUTION_CODE_ENTRYPOINT=main.cpp | |
ENV COMPILED_FILE_PATH=/opt/client/a.out | |
ENV DEFAULT_COMPILATION_COMMAND="g++ -m64 -pipe -O2 -std=c++11 -w -o $COMPILED_FILE_PATH $SOLUTION_CODE_ENTRYPOINT" | |
ENV DEFAULT_RUN_COMMAND="/lib64/ld-linux-x86-64.so.2 $COMPILED_FILE_PATH" | |
ENV DEBIAN_FRONTEND=noninteractive | |
# Updating and getting software | |
RUN apt-get update -y && \ | |
apt-get install -y build-essential | |
# Cleanup and other variables rarely changed | |
RUN rm -rf /var/lib/apt/lists/* | |
ENV SOLUTION_CODE_PATH=/opt/client/solution | |
ENV COMPILATION_COMMAND='cd "${SOLUTION_CODE_PATH}" && if [ -f "build.sh" ]; then chmod +x build.sh && ./build.sh 2>&1 >/dev/null; else eval "${DEFAULT_COMPILATION_COMMAND}" 2>&1 >/dev/null; fi' | |
ENV RUN_COMMAND='cd "${SOLUTION_CODE_PATH}" && if [ -f "run.sh" ]; then chmod +x run.sh && ./run.sh; else eval "${DEFAULT_RUN_COMMAND}"; fi' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment