nginx, mysql 수동 설치


install docker

sudo groupadd docker
sudo usermod -aG docker $USER

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] <https://download.docker.com/linux/ubuntu> $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

sudo apt-get install docker-compose

last config (2022-07-28 02:23) (failed)

// .env
MYSQL_ROOT_PASSWORD=ssafy
MYSQL_PORT=13308
HELLO_PORT=8085
// compose.yml
services:
  mysql:
    container_name: mysql-container
    image: mysql:8.0
    restart: always
    volumes:
      - mysql-volume:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"
      MYSQL_DATABASE: todos
    expose:
      - "${MYSQL_PORT}"

  nginx:
    container_name: nginx-container
    depends_on:
      - hellonode
    image: nginx:1.23.1
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
    networks:
      - backend
    expose:
      - "80"

  hellonode:
    container_name: hello-node-container
    image: hello-node:1.0.0
    build:
      context: ./hellonode
      dockerfile: Dockerfile
      args:
        HELLO_PORT: ${HELLO_PORT}
    environment:
      HELLO_PORT: "${HELLO_PORT}"
    expose:
      - "${HELLO_PORT}"
    networks:
      - backend

volumes:
  mysql-volume:

networks:
  backend:
    driver: bridge
// hello-node/Dockerfile
FROM node:18-alpine3.15
ARG HELLO_PORT
WORKDIR /workspace
COPY ./ /workspace
RUN npm install
ENV HELLO_PORT=${HELLO_PORT}
EXPOSE ${HELLO_PORT}
RUN [ "node", "app.js" ]
// hello-node/app.js
const express = require('express')
const app = express()
const port = parseInt(process.env.HELLO_PORT);

app.get('/', (req, res) => {
  res.send(`Hello World! from PORT=${port}`)
});

app.listen(port, () => {
  console.log(`Express application listening on port ${port}`);
})

app.all("*", (req, res, next) => {
        console.log(req.protocol + "://" + req.get("host") + req.originalUrl);
        next();
});
// hello-node/package.json
{
  "dependencies": {
    "express": "^4.18.1"
  }
}