https://github.com/docker/awesome-compose/tree/master
## Container
sudo docker run --name web -d -p 8080:80 nginx
version: "3.8"
services:
website:
image: nginx
ports:
- "8081:80"
restart: always
website2:
image: nginx
ports:
- "8082:80"
restart: always
networks:
csl:
ipv4_address: 192.168.0.21
## Network
sudo docker network create csl --subnet 192.168.0.0/24
networks:
csl:
ipam:
driver: default
config:
- subnet: "192.168.0.0/24"
WP
version: "3"
services:
wordpress:
image: wordpress
ports:
- "8089:80"
depends_on:
- mysql
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: "devops"
WORDPRESS_DB_NAME: wordpress
networks:
wpnet:
ipv4_address: "10.10.0.20"
mysql:
image: "mysql:5.7"
environment:
MYSQL_DATABASE: "wordpress"
MYSQL_ROOT_PASSWORD: "devops"
volumes:
- ./mysql:/var/lib/mysql
networks:
wpnet:
ipv4_address: "10.10.0.21"
networks:
wpnet:
ipam:
driver: default
config:
- subnet: "10.10.0.0/24"
# Use the official image as a parent image Front
FROM node:18.9.1
# Set the working directory
WORKDIR /app
# Copy the file from your host to your current location
COPY package.json .
# Run the command inside your image filesystem
RUN npm install
# Inform Docker that the container is listening on the specified port at runtime
EXPOSE 5173
# Copy the rest of your app's source code from your host to your image filesystem
COPY . .
# Run the specified command within the container
CMD ["npm", "run", "dev"]
#Backend
FROM node:18.9.1
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 5050
CMD ["npm", "start"]
#Compose
services:
backend:
build: ./mern/backend
ports:
- "5050:5050"
networks:
- mern_network
environment:
MONGO_URI: mongodb://mongo:27017/mydatabase
depends_on:
- mongodb
frontend:
build: ./mern/frontend
ports:
- "5173:5173"
networks:
- mern_network
environment:
REACT_APP_API_URL: http://backend:5050
mongodb:
image: mongo:latest
ports:
- "27017:27017"
networks:
- mern_network
volumes:
- mongo-data:/data/db
networks:
mern_network:
driver: bridge
volumes:
mongo-data:
driver: local # Persist MongoDB data locally