-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Review Docker management ( linked with #934 ) * fix comment by @balloob * Explicit remove of package-lock.json * moved on feature branch, merge docker scripts, added documetation * Used alphine as requested by @balloob on #947 and followed the @mcspr comment #934 * Remove package-lock from gitignore, we don't use npm * Update for new build instructions
- Loading branch information
Showing
5 changed files
with
149 additions
and
12 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,31 @@ | ||
FROM node:8.2.1-alpine | ||
FROM node:8.9-alpine | ||
|
||
# install yarn | ||
ENV PATH /root/.yarn/bin:$PATH | ||
|
||
## Install/force base tools | ||
RUN apk update \ | ||
&& apk add curl bash binutils tar git python3 \ | ||
&& apk add make g++ curl bash binutils tar git python2 python3 \ | ||
&& rm -rf /var/cache/apk/* \ | ||
&& /bin/bash \ | ||
&& touch ~/.bashrc \ | ||
&& curl -o- -L https://yarnpkg.com/install.sh | bash | ||
&& touch ~/.bashrc | ||
|
||
## Install yarn | ||
RUN curl -o- -L https://yarnpkg.com/install.sh | bash | ||
|
||
## Setup the project | ||
RUN mkdir -p /frontend | ||
WORKDIR /frontend | ||
|
||
ENV NODE_ENV production | ||
WORKDIR /frontend | ||
|
||
COPY package.json ./ | ||
RUN yarn | ||
COPY package.json yarn.lock ./ | ||
|
||
COPY bower.json ./ | ||
RUN ./node_modules/.bin/bower install --allow-root | ||
RUN yarn install --frozen-lockfile | ||
|
||
COPY . . | ||
CMD [ "/bin/bash", "./script/build_frontend" ] | ||
|
||
COPY script/docker_entrypoint.sh /usr/bin/docker_entrypoint.sh | ||
|
||
RUN chmod +x /usr/bin/docker_entrypoint.sh | ||
|
||
CMD [ "docker_entrypoint.sh" ] |
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#!/bin/bash | ||
# Docker entry point inspired by travis build and script/build_frontend | ||
|
||
# Stop on errors | ||
set -e | ||
|
||
# Build the frontend but not used the npm run build | ||
/bin/bash script/build_frontend | ||
|
||
# TEST | ||
npm run test | ||
|
||
# | ||
#xvfb-run wct |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
#!/bin/bash | ||
# Basic Docker Management scripts | ||
# With this script you can build software, or enter an agnostic development environment and run commands interactively. | ||
|
||
|
||
|
||
check_mandatory_tools(){ | ||
if [ "x$(which docker)" == "x" ]; then | ||
echo "UNKNOWN - Missing docker binary! Are you sure it is installed and reachable?" | ||
exit 3 | ||
fi | ||
|
||
docker info > /dev/null 2>&1 | ||
if [ $? -ne 0 ]; then | ||
echo "UNKNOWN - Unable to talk to the docker daemon! Maybe the docker daemon is not running" | ||
exit 3 | ||
fi | ||
} | ||
|
||
check_dev_image(){ | ||
if [[ "$(docker images -q ${IMAGE_NAME}:$IMAGE_TAG 2> /dev/null)" == "" ]]; then | ||
echo "UNKNOWN - Can't find the development docker image ${IMAGE_NAME}:$IMAGE_TAG" | ||
while true; do | ||
read -p "Do you want to create it now?" yn | ||
case $yn in | ||
[Yy]* ) create_image; break;; | ||
[Nn]* ) exit 3;; | ||
* ) echo "Please answer y or n";; | ||
esac | ||
done | ||
fi | ||
} | ||
|
||
# Building the basic image for compiling the production frontend | ||
create_image(){ | ||
docker build -t ${IMAGE_NAME}:${IMAGE_TAG} . | ||
} | ||
|
||
# | ||
# Execute interactive bash on basic image | ||
# | ||
run_bash_on_docker(){ | ||
|
||
check_dev_image | ||
|
||
docker run -it \ | ||
-v $PWD/:/frontend/ \ | ||
-v /frontend/node_modules \ | ||
-v /frontend/bower_components \ | ||
${IMAGE_NAME}:${IMAGE_TAG} /bin/bash | ||
} | ||
|
||
# | ||
# Execute the basic image for compiling the production frontend | ||
# | ||
build_all(){ | ||
|
||
check_dev_image | ||
|
||
docker run -it \ | ||
-v $PWD/:/frontend/ \ | ||
-v /frontend/node_modules \ | ||
-v /frontend/bower_components \ | ||
${IMAGE_NAME}:${IMAGE_TAG} /bin/bash script/build_frontend | ||
|
||
} | ||
|
||
# Init Global Variable | ||
IMAGE_NAME=home_assistant_fe_image | ||
IMAGE_TAG=${2:-latest} | ||
|
||
check_mandatory_tools | ||
|
||
case "$1" in | ||
setup_env) | ||
create_image | ||
;; | ||
bash) | ||
run_bash_on_docker | ||
;; | ||
build) | ||
build_all | ||
;; | ||
*) | ||
echo "NAME" | ||
echo " Docker Management." | ||
echo "" | ||
echo "SYNOPSIS" | ||
echo " ${0} command [version]" | ||
echo "" | ||
echo "DESCRIPTION" | ||
echo " With this script you can build software, or enter an agnostic development environment and run commands interactively." | ||
echo "" | ||
echo " The command are:" | ||
echo " setup_env Create develop images" | ||
echo " bash Run bash on develop enviroments" | ||
echo " build Run silent build" | ||
echo "" | ||
echo " The version is optional, if not inserted it assumes \"latest\". " | ||
exit 1 | ||
;; | ||
esac | ||
exit 0 |