MOBILE-2837 Docker: Add a Dockerfile for easier testing and CI

main
Andrew Nicols 2019-01-21 12:07:45 +08:00
parent b7d56bf641
commit 1976cba5aa
3 changed files with 47 additions and 0 deletions

2
.dockerignore 100644
View File

@ -0,0 +1,2 @@
node_modules
Dockerfile

27
Dockerfile 100644
View File

@ -0,0 +1,27 @@
# This image is based on the fat node 11 image.
# We require fat images as neither alpine, or slim, include git binaries.
FROM node:11
# Port 8100 for ionic dev server.
EXPOSE 8100
# Port 35729 is the live-reload server.
EXPOSE 35729
# Port 53703 is the Chrome dev logger port.
EXPOSE 53703
# MoodleMobile uses Cordova, Ionic, and Gulp.
RUN npm install -g cordova ionic gulp && rm -rf /root/.npm
WORKDIR /app
COPY . /app
# The setup script will handle npm installation, cordova setup, and gulp setup.
RUN npm run setup && rm -rf /root/.npm
# Provide a Healthcheck command for easier use in CI.
HEALTHCHECK --interval=10s --timeout=3s --start-period=30s CMD curl -f http://localhost:8100 || exit 1
CMD ["ionic", "serve", "-b"]

18
hooks/post_push 100644
View File

@ -0,0 +1,18 @@
#!/bin/bash
set -e
if [ "integration" != "${SOURCE_BRANCH}" ]
then
# A space-separated list of additional tags to place on this image.
additionalTags=(latest)
# Tag and push image for each additional tag
for tag in ${additionalTags[@]}; do
echo "Tagging {$IMAGE_NAME} as ${DOCKER_REPO}:${tag}"
docker tag $IMAGE_NAME ${DOCKER_REPO}:${tag}
echo "Pushing ${DOCKER_REPO}:${tag}"
docker push ${DOCKER_REPO}:${tag}
done
fi