Учебный проект для курса http://devstudy.net/course/jee-resume
Для сборки и запуска данного проекта в docker контейнерах на компьютер необходимо установить ТОЛЬКО docker и docker-compose. Все необходимые для сборки и запуска программные компоненты доступны в виде docker образов на docker hub и поэтому docker подтянет их из интернета. (https://hub.docker.com/u/devstudy)
Т.е. на компьютер НЕ НУЖНО устанавливать: git, java, maven, tomcat, mongodb и nginx.
Установка docker зависит от операционной системы, поэтому на официальном сайте необходимо выбрать Вашу операционную систему и следуя инструкциям установить docker и docker-compose:
FYI: Для операционных систем на базе Ubuntu можно использовать упрощенные команды:
- Установка docker одной командой:
sudo apt update && sudo apt install -y docker.io && sudo systemctl start docker
- Установка docker-compose одной командой:
sudo apt install -y curl && sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose
Добавить текущего пользователя в группу docker:
sudo usermod -aG docker $USER
logout
login
- Windows:
docker run -it --rm -v "%cd%":/opt/src/ -w /opt/src devstudy/git git clone "https://github.com/devstudy-net/resume"
- macOS:
docker run -it --rm -v "$PWD":/opt/src/ -w /opt/src devstudy/git git clone "https://github.com/devstudy-net/resume"
- Linux:
docker run -u 1000 -it --rm -v "$PWD":/opt/src/ -w /opt/src devstudy/git git clone "https://github.com/devstudy-net/resume"
FYI: (Параметр -u 1000
означает запуск docker от имени Вашего пользователя в системе. 1000
- это uid Вашего пользователя. Если данный параметр пропустить, то тогда все файлы создадуться от имени root
пользователя)
cd resume/
- Windows:
docker run -v %userprofile%/:/home/mvn/ -it --rm -e MAVEN_CONFIG=/home/mvn/.m2 -v "%cd%":/opt/src/ -w /opt/src devstudy/maven mvn -Duser.home=/home/mvn clean package
- macOS:
docker run -v ~/:/home/mvn/ -it --rm -e MAVEN_CONFIG=/home/mvn/.m2 -v "$PWD":/opt/src/ -w /opt/src devstudy/maven mvn -Duser.home=/home/mvn clean package
- Linux:
docker run -u 1000 -v ~/:/home/mvn/ -it --rm -e MAVEN_CONFIG=/home/mvn/.m2 -v "$PWD":/opt/src/ -w /opt/src devstudy/maven mvn -Duser.home=/home/mvn clean package
FYI: (Параметр -u 1000
означает запуск docker от имени Вашего пользователя в системе. 1000
- это uid Вашего пользователя. Если данный параметр пропустить, то тогда все файлы создадуться от имени root
пользователя)
(Если данный файл не создавать, то в проекте не будут работать модули email и facebook):
DEVSTUDY_RESUME_FACEBOOK_CLIENT_ID=TODO
DEVSTUDY_RESUME_FACEBOOK_SECRET=TODO
DEVSTUDY_RESUME_SMTP_USERNAME=TODO
DEVSTUDY_RESUME_SMTP_PASSWORD=TODO
docker-compose up
P.S. Если сборка и запуск docker контейнеров прошли успешно в консоли последней строчкой Вы должны увидеть строку, что resume-backend server успешно запустился:
resume-backend | 04-Aug-2019 07:37:03.012 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 2502 ms
- Если docker устанавливался на текущую машину, то адрес сайта:
http://localhost
- Если docker устанавливался на удаленную машину, то адрес сайта:
http://${REMOTE_IP_ADDRESS}
- 27017 - для доступа к mongo базе данных, с помощью mongo клиента;
- 8080 - для доступа к серверу Tomcat напрямую, минуя nginx;
- 8765 - для tomcat remote debugging.
Ctrl+C
docker-compose down
Если на сервере нужны только docker контейнеры с готовыми образами приложения, то исходники которые уже не будут использоваться при запуске проекта могут быть удалены:
docker rmi -f devstudy/git
docker rmi -f devstudy/maven
- Windows:
rmdir /s /q src target external .git
del /f /q pom.xml README.md .gitignore
- macOS и Linux:
rm -rf ./src ./target ./pom.xml ./external ./README.md ./.git ./.gitignore
- Windows:
rmdir /s /q %userprofile%\.m2
- macOS и Linux:
rm -rf ~/.m2
После удаления исходных кодов проект запускается и останавливается следующими командами:
docker-compose up
Ctrl+C
docker-compose down