- สร้าง Dockerfile_vuejs
# base image
FROM node:14.17.6
# set working directory
WORKDIR /app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
# install and cache app dependencies
COPY package.json /app/package.json
RUN npm install
RUN npm install @vue/cli@3.7.0 -g
# start app
CMD ["npm", "run", "serve"]
- สร้าง Dockerfile_fastapi
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
RUN pip install requests
RUN pip install SQLAlchemy
RUN pip install mysql-connector-python
RUN pip install fastapi-sessions
RUN pip install itsdangerous
- สร้าง file docker-compose.yml
version: '3.7'
services:
appvuejs:
container_name: appvuejs
build:
context: .
dockerfile: Dockerfile_vuejs
volumes:
- '.:/app'
- './node_modules:/app/node_modules'
logging:
driver: "json-file"
options:
max-size: 10m
max-file: "5"
ports:
- '8081:8080'
networks:
- custom_network
api:
build:
context: .
dockerfile: Dockerfile_fastapi
volumes:
- ./api:/app
ports:
- 8113:80
logging:
driver: "json-file"
options:
max-size: 10m
max-file: "5"
entrypoint: ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80", "--workers","2","--reload"]
networks:
- custom_network
db:
image: mysql:8
#restart: always
entrypoint: ['/entrypoint.sh', '--default-authentication-plugin=mysql_native_password']
command: --sql_mode=""
volumes:
- ./mysql/data/:/var/lib/mysql
environment:
- MYSQL_USER_ROOT=root
- MYSQL_ROOT_PASSWORD=7eGsbXNz
- MYSQL_DATABASE=app
- MYSQL_USER=admin
- MYSQL_PASSWORD=7eGsbXNz
networks:
- custom_network
pma:
image: phpmyadmin/phpmyadmin
#restart: always
links:
- db
environment:
- MYSQL_USERNAME=admin
- MYSQL_ROOT_PASSWORD=7eGsbXNz
#- PMA_ARBITRARY=1
- PMA_HOST=db
depends_on:
- db
ports:
- "8114:80"
networks:
- custom_network
networks:
custom_network:
external:
name: nginx-network
run command
# docker-compose build
# docker-compose up -d