인터넷의 급속한 발전으로 인해 엔터프라이즈 애플리케이션의 배포 및 관리가 점점 더 복잡해지고 있습니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!