강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của learnttf83650
learnttf83650

câu hỏi đã được viết

Học cách xây dựng giao tiếp WebSocket để xử lý TPS chat lớn

Thiết lập phần mềm trung gian và Cors

오늘 강의 듣기 시작했는데요!

Viết

·

113

0

제 프로젝트에 채팅 기능을 넣고 싶어서 듣게 되었습니다. (일반 js, html로 이루어진)
view 부분은 아무거나 제가 해서 하면 되겠지만
이 채팅 서버를 api처럼 사용할 예정이에요
이것을 배포할 때는 어떤식으로 해줘야 하는지 잘 모르겠네요. spring 은 톰캣으로 webapp에 war를 넣어서 해당 컨텍스트를 실행시켜주면되고 플라스크는 wsgi 를 사용해서 requirement.txt 에 외부라이브러리 세팅해주고
돌리면 돌아갔는데 이 강의 서버는 리눅스에서 어떤식으로 리눅스에서 돌리면 될까요 ? 도커를 사용할 예정입니다..!
이 웹 어플리케이션을 배포해서 돌리기위한 절차가 궁금합니다!

node.jsgowebsockets

Câu trả lời 2

0

July님의 프로필 이미지
July
Người chia sẻ kiến thức

docker를 사용하신다면, 그냥 이미지를 생성하실 떄, 빌드 바이너리 파일을 넘겨주면 되지 않을까 싶습니다.

golang에서 빌드 파일을 생성하는 명령어는 go build -o <이름> 을 통해서 생성한 바이너리 실행파일을 넘겨주고,

해당 이미지 내부에서 go run <./이름> 을 통해 실행시키면 되지 않을까 습니다.

 

0

안녕하세요, 인프런 AI 인턴입니다. learnlearnlearn님.

채팅 서버를 실제 프로젝트에 배포하는 방법에 대해 문의 주셨군요. 간단히 요약하면, 도커를 사용하여 웹소켓 서버를 배포하려면 몇 가지 주요 단계가 필요합니다. 이 과정을 통해 여러분의 웹소켓 서버를 컨테이너화하여 리눅스 서버에서 안전하고 일관된 환경에서 실행할 수 있습니다.

1. Dockerfile 작성

먼저, 여러분의 웹소켓 서버 애플리케이션을 위한 Dockerfile을 작성해야 합니다. 이 파일은 도커 이미지 빌드에 필요한 모든 설정을 포함하며, 기본 베이스 이미지와 애플리케이션 설치 및 실행 방법을 정의합니다.

# 예시 Dockerfile
FROM golang:1.18 AS builder
WORKDIR /app
COPY . .
RUN go build -o mychatapp main.go

# 실행용 이미지
FROM golang:1.18
WORKDIR /app
COPY --from=builder /app/mychatapp .
CMD ["./mychatapp"]

2. Docker 이미지 빌드

Dockerfile을 기반으로 도커 이미지를 빌드합니다.

docker build -t mychatapp .

3. Docker 컨테이너 실행

이미지를 빌드한 후, 도커 컨테이너를 실행합니다. 필요에 따라 포트를 노출해주어야 합니다.

docker run -d -p 8080:8080 mychatapp

4. 환경 변수 설정 및 볼륨 마운트 (필요 시)

애플리케이션이 사용하는 환경 변수나, 저장해야 할 데이터가 있다면, 컨테이너 실행 시 환경 변수를 설정하거나 볼륨을 마운트하여 데이터를 유지할 수 있습니다.

docker run -d -p 8080:8080 \
  -e ENV_VARIABLE=value \
  -v /host/data:/app/data \
  mychatapp

5. 리버스 프록시 설정 (옵션)

배포 환경에 따라 Nginx와 같은 리버스 프록시를 설정하여 SSL 인증서를 구성하고 로드 밸런싱을 진행할 수 있습니다.

도커에 대해 좀 더 구체적인 설정이나 배포에 필요한 설정은 프로젝트의 요구 사항에 따라 조정해야 할 수 있습니다.

관련된 유사한 경험과 질문을 다룬 답변이 있어 공유드립니다:
- 웹 소켓 서버의 수평적 확장 및 무중단 배포에 대해 질문드립니다!: 웹 소켓 서버의 확장과 배포에 대해 보다 상세한 논의를 포함하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Hình ảnh hồ sơ của learnttf83650
learnttf83650

câu hỏi đã được viết

Đặt câu hỏi