joplin-notes/joplin notion extension/Web Development/Extras/Docker/projects.md
2026-11-04 00:33:23 +05:30

118 lines
No EOL
2.5 KiB
Markdown

projects
## spring quiz app
- location : `/home/hpes/Videos/imp/java/spring/genz/quiz_back_docker-compose`
**following will not work**
- to go to bash use this
`docker run --rm -it --name quiz-app quiz-app-docker:1.0 bash`
- run app (use -d for detach mode)
`docker run -p 8085:8080 --rm --name quiz-app quiz-app-docker:1.0`
- build
`docker build -t quiz-app:1.0 .`
- Dockerfile
```
FROM alpine:latest
RUN apk add --update bash openjdk17 maven mariadb mariadb-client
COPY . /spring-app
WORKDIR /spring-app
RUN mvn package
# Initialize MySQL database (this step will only run the first time)
RUN mysql_install_db --user=root --basedir=/usr --datadir=/var/lib/mysql
RUN mysqld_safe --user=root & \
sleep 3 && \
mysql -e "create database quiz;" && \
mysql quiz < quiz.sql
EXPOSE 8080
RUN chmod +x entrypoint.sh
# Start the MySQL service and your backend
CMD sh /spring-app/entrypoint.sh
```
&nbsp;
**docker compose method** (1.3 gb)
docker-compose.yml
```yml
version: '3.8'
services:
mysql:
image: mysql:latest # You can use a different version if necessary
environment:
MYSQL_ROOT_PASSWORD: strong_password
ports:
- "3307:3306" # Expose MySQL on port 3307
volumes:
- /var/lib/docker/volumes/mysql_app_data/_data:/var/lib/mysql # Persist MySQL data
spring-app:
build: .
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/quiz?allowMultiQueries=true
SPRING_DATASOURCE_USERNAME: root
SPRING_DATASOURCE_PASSWORD: strong_password
ports:
- "8085:8080" # Expose Spring Boot app on port 8080
depends_on:
- mysql # Ensure MySQL starts before Spring Boot app
```
Dockerfile for spring-app
```
FROM alpine:latest
RUN apk add --update bash openjdk17 maven
COPY . /spring-app
WORKDIR /spring-app
RUN mvn package
EXPOSE 8080
CMD java -jar target/demo-0.0.1-SNAPSHOT.jar
```
two commands
`docker-compose build` and `docker-compose up`
&nbsp;
## youtube playlist downloader
200 mb
- location : `/home/hpes/Videos/imp/nodejs/production/youtube downloader/`
- `docker build -t ytdown:1.0 .`
DockerFile
```
FROM alpine
RUN apk add --update nodejs npm bash
# App 1
WORKDIR /src/puppetter_test
COPY puppetter_test/ ./
RUN npm install
# App 2
WORKDIR /src/ytDownloadSpace
COPY ytDownloadSpace ./
RUN npm install
# App 3
WORKDIR /src/ytdlApi
COPY ytdlApi/ ./
RUN npm install
RUN npm install -g pm2
#config file
WORKDIR /src/puppetter_test
EXPOSE 8081
CMD pm2 start ecosystem.config.js --no-daemon
# CMD ["node", "app.js"]
```
&nbsp;
for vps
[setup.md](../../../../_resources/setup.md)