>  기사  >  백엔드 개발  >  golang 도커 웹 배포

golang 도커 웹 배포

WBOY
WBOY원래의
2023-05-15 09:57:37506검색

인터넷의 급속한 발전으로 인해 엔터프라이즈 애플리케이션의 배포 및 관리가 점점 더 복잡해지고 있습니다. Docker 컨테이너 기술의 출현은 개발자가 애플리케이션 배포 프로세스와 환경 구축 작업을 크게 단순화하는 데 도움이 될 수 있습니다. 이 기사에서는 Go 언어와 Docker 컨테이너 기술을 사용하여 웹 애플리케이션을 배포하고 관리하는 방법을 소개합니다.

1. 준비

1. Go 언어 개발 환경을 설치합니다.
Go 언어 개발 환경 및 관련 도구를 설치해야 합니다. 다운로드 주소는 https://golang.org/dl/입니다.

2. Docker 컨테이너 기술을 설치합니다.
최신 버전의 Docker CE를 설치해야 합니다. 다운로드 주소는 https://www.docker.com/community-edition입니다.

3. 코드 편집기를 설치합니다.
이 문서에서는 Visual Studio Code를 코드 편집기로 사용합니다. 다운로드 주소는 https://code.visualstudio.com/download입니다.

4. Go 웹 프로젝트를 만듭니다.
명령줄에서 작업 디렉터리로 이동하고 다음 명령을 사용하여 "goweb"이라는 Go Web 프로젝트를 만듭니다.

$ go mod init goweb

5 필수 Go 종속성 패키지를 다운로드합니다.
다음 명령을 사용하여 필요한 Go 종속성 패키지를 다운로드하세요.

$ go get -u github.com/gin-gonic/gin

2. 웹 애플리케이션 만들기

이전 단계에서 Gin 프레임워크가 웹 애플리케이션에 대한 기본 지원으로 설치되었습니다. 간단한 웹 애플리케이션.

1. 프로젝트에 폴더를 만들고 프런트엔드 리소스와 정적 파일을 저장할 디렉터리 이름을 "static"으로 지정합니다.

2. HTML 템플릿 파일을 저장할 "templates"라는 프로젝트에 폴더를 만듭니다.

3. 다음 콘텐츠로 "main.go"라는 Go 파일을 만듭니다.

package main

import "github.com/gin-gonic/gin"

func main() {
    router := gin.Default()
    router.LoadHTMLGlob("templates/*")
    router.Static("/static", "./static")
    router.GET("/", func(c *gin.Context) {
        c.HTML(200, "index.tmpl", gin.H{
            "title": "Golang Docker Web Deployment",
        })
    })
    router.Run(":8080")
}

위 코드는 Gin 프레임워크를 사용하여 템플릿과 정적 파일을 로드하는 간단한 웹사이트를 만듭니다. 해당 웹사이트는 http://localhost:8080/을 방문하여 볼 수 있습니다.

3. Docker 이미지 빌드

다음으로 Docker를 사용하여 Docker 이미지를 빌드해 보겠습니다.

1. 프로젝트 루트 디렉토리에 "Dockerfile"이라는 파일을 생성합니다. 파일 내용은 다음과 같습니다.

FROM golang:1.16 AS build

WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .

RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .

FROM alpine:latest

RUN apk --no-cache add ca-certificates

WORKDIR /root/

COPY --from=build /app/app .

EXPOSE 8080

CMD ["./app"]

위 코드는 첫 번째 단계에서 golang:1.16을 기본 이미지로 사용하여 모두 설치합니다. 필수 Go 종속성 패키지를 만들고 로컬 코드를 이미지에 복사하여 애플리케이션을 빌드합니다. 두 번째 단계에서는 최신 버전의 알파인 이미지를 기본 이미지로 사용하고 애플리케이션 파일을 컨테이너에 복사하여 실행합니다.

2. 명령줄을 열고 프로젝트 루트 디렉터리를 입력한 후 다음 명령을 실행하여 Docker 이미지를 빌드합니다.

$ docker build -t golang-web .

위 명령은 Dockerfile 파일의 내용을 읽고 "golang-web"이라는 이미지를 빌드합니다.

3. Docker 컨테이너 실행
다음 명령을 실행하여 컨테이너를 시작합니다.

$ docker run -p 8080:8080 golang-web

위 명령은 "golang-web"이라는 컨테이너를 시작하고 컨테이너의 8080 포트를 호스트의 8080 포트에 매핑합니다.

4. Docker Compose를 통해 여러 컨테이너 관리

여러 컨테이너를 동시에 관리해야 하는 경우 Docker Compose를 사용하여 여러 컨테이너를 만들고 관리할 수 있습니다.

1. docker-compose.yml 파일을 생성합니다.
프로젝트의 루트 디렉터리에 다음 내용이 포함된 "docker-compose.yml"이라는 파일을 생성합니다.

version: '3'

services:
  backend:
    build: .
    ports:
      - "8080:8080"
    command: ["./app"]
  frontend:
    image: nginx:alpine
    volumes:
      - ./frontend:/usr/share/nginx/html
    ports:
      - "80:80"

위 구성은 두 개의 서비스를 생성합니다. "백엔드" 서비스는 Go 웹 애플리케이션을 실행하는 데 사용되며 "프런트엔드"라는 다른 서비스는 NGINX 웹 서버를 프런트엔드 프록시로 실행하는 데 사용됩니다.

2. 프론트엔드 디렉토리 생성
프로젝트의 루트 디렉토리에 "frontend"라는 디렉토리를 생성하고 다음 내용을 포함하는 "index.html"이라는 HTML 파일을 생성합니다.

<!DOCTYPE html>
<html>
<head>
    <title>Go Docker Web Deployment</title>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>

위 코드는 간단한 HTML 페이지입니다.

3. Docker Compose 시작
명령줄에 프로젝트 루트 디렉터리를 입력하고 다음 명령을 실행하여 Docker Compose를 시작합니다.

$ docker-compose up -d

위 명령을 사용하면 두 개의 서비스가 시작됩니다. -d" 옵션 Docker Compose를 백그라운드에서 실행할 수 있습니다.

4. 요약

이 글의 소개를 통해 Go 언어와 Docker 컨테이너 기술을 사용하여 간단한 웹 애플리케이션을 빠르게 구축하고 Docker Compose를 사용하여 여러 컨테이너를 관리할 수 있습니다. 이 방법은 배포 프로세스 및 환경 설정 작업을 크게 단순화할 수 있으며 엔터프라이즈 애플리케이션의 신속한 배포 및 관리에 편의성을 제공합니다.

위 내용은 golang 도커 웹 배포의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.