go-web actractice는 학습 프로젝트입니다. Golang의 기본 라이브러리를 사용하여 간단한 웹 응용 프로그램을 구현하십시오.
이 프로젝트는 B 스테이션의 UP의 주요 소프트웨어 기술자가 "Go Web Programming Quick Start [Golang/Go Language] (Complete)"에 의해 배우고 작성되었습니다.
비디오를 기반으로 일부 수정이 이루어졌습니다.
이 프로젝트는 테스트 및 배포되었으며 Linux 호스트 배포 안내서는 다음과 같습니다.
프로젝트 구조 :
go-web-practice
.
├── LICENSE
├── README.md
├── build
│ └── package
│ ├── dockerfile.build_run
│ └── dockerfile.run
├── cmd
│ └── main.go
├── configs
│ └── config.json
├── deployments
│ └── docker-compose.yaml
├── go.mod
├── internal
│ ├── config
│ │ ├── config.go
│ │ └── config_test.go
│ ├── controller
│ │ ├── controller.go
│ │ ├── index.go
│ │ ├── look.go
│ │ └── welcome.go
│ ├── log
│ │ └── log.go
│ ├── middleware
│ │ ├── cross.go
│ │ ├── log.go
│ │ └── timeout.go
│ └── templates
│ └── template.go
└── web
├── img
│ ├── favicon.ico
│ ├── golang-down.png
│ ├── golang-right.png
│ └── golang.png
├── plugins
│ ├── bootstrap
│ │ ├── css
│ │ │ └── bootstrap.min.css
│ │ └── js
│ │ └── bootstrap.min.js
│ └── jquery
│ └── js
│ └── jquery.min.js
└── templates
├── index.tmpl
├── look.tmpl
├── test.tmpl
└── welcome.tmpl
알아채다
다음은 프로젝트의 현재 문제입니다
또는 대학 숙제를 할 때주의를 기울일 것.
- 이 프로젝트는 Goland를 사용하여 개발되었으며 다른 IDE의 마이그레이션은 알려져 있지 않습니다.
- main.go에는 약간의 의견 만 작성되며 다른 파일의 의견은 향후 업데이트됩니다.
- 현재 프로젝트에는 라우팅 인터페이스가 거의 없으므로 필요한 경우 직접 추가 할 수 있습니다.
- 데이터베이스가 없습니다.
- Docker 및 Docker-Compose와 함께 실행하기 전에 프로젝트를 직접 컴파일하거나 실행 파일을 프로젝트 디렉토리에 배치해야합니다.
먼저 Golang의 환경을 설치해야합니다. 프로젝트를 수정하면 배포 및 실행되기 전에 프로젝트를 수정하고 실행 파일을 가져와야합니다. **
Golang의 크로스 컴파일은 큰 편의를 제공하여 Windows에서 Linux에서 실행할 수있는 실행 파일을 컴파일 할 수 있습니다.
다음 .BAT 스크립트를 사용하여 Windows에서 Windows 및 Linux 환경에서 실행 파일 컴파일을 완료 할 수 있습니다.
# 请以项目目录为工作目录执行该脚本
# windows 可执行文件编译
go build -o go-web-practice.exe cmdmain.go
# linxu 可执行文件编译
set CGO_ENABLED = 0
set GOOS = linux
set GOARCH = amd64
go build -o go-web-practice .cmdmain.go
pause MacOS 또는 Linux에서 개발중인 경우 make 로 구축 할 수 있습니다.
make이 프로젝트는 JSON 파일을 사용하여 구성합니다.
다음 표에 표시된대로 config/conifg.json 의 구성 의미를 확인하고 필요에 따라 수정하십시오.
| 구성 필드 | 의미론 |
|---|---|
| 공전 | 정적 파일의 경로 |
| 주형 | GO 템플릿으로가는 경로 |
| 주소 | 서비스 시작 주소 (기본값이 비어 있고 공개 네트워크 배포가 구현 될 수 있음) |
| 포트 | 서비스 시작을위한 포트 |
| Handletimeoutsecond | 처리 시간 초과 시간 요청 (이 구성은 프로젝트에서 사용되지 않으며 예약됩니다) |
| 추적하다 | 추적 로거 로그를 출력하는 경로 (프로젝트에 사용되지 않음, 예약) |
| 정보 | 출력 로그에 대한 정보 로거 경로 |
| 경고 | 경고 로거 경로 출력 로그 경로 |
| 오류 | 오류 로거 출력 로그로가는 경로 |
실행할 때 다음 디렉토리 구조를 보장해야합니다 (예제로 Linux를 실행할 수 있음).
.
├── configs
│ └── config.json
├── go-web-practice
└── web
└── ...실행 파일을 직접 실행하고 실행이 성공적이라는 다음 프롬프트를 확인하십시오.

curl localhost:8000/welcome 으로 테스트 할 수 있으며, 이는 환영 인터페이스의 HTML을 반환합니다.
기본 액세스 (포트 구성이 수정되지 않음) : http : // localhost : 8000.
서버에 배포하고 공개 네트워크를 통해 액세스하려면 해당 포트를 열도록 방화벽을 설정해야합니다. 클라우드 서버 인 경우 보안 그룹도 열어야합니다.
마스터 브랜치는 Dockerfile을 업데이트하고 Docker를 사용하여 Go-Web actice의 편집 및 작동을 테스트했습니다.
다음은 Go-Web 연습용 Docker Compilation/Deployment Run Guide입니다.
Docker 란 무엇인가, 설치 방법 및 사용 방법은 여기에서 자세히 설명하지 않습니다.
자세한 내용은 공식 Docker 문서를 참조하십시오 : https://docs.docker.com/
이미지 구축시 컴파일을 완료하려면 프로젝트 디렉토리에서 다음 순서로 명령을 실행하고 컨테이너가 시작될 때 서비스를 실행하십시오.
$ docker build -t go-web-practice -f ./build/package/dockerfile.build_run . docker run -d -p 8000:8000 go-web-practice로컬 컴파일 및 실행 파일 생성 후에는 실행중인 이미지를 빌드하여 이미지 크기가 작더라도 이미지가 정상적으로 실행될 수 있도록 할 수 있습니다.
위의 Docker를 사용하여 컴파일 된 이미지의 이미지 크기는 1GB에 가깝고이 섹션에 내장 된 런닝 가능한 이미지는 약 100MB입니다.
참고 : Go-Web-Practice라는 이미지가 위에서 구축 된 후이 섹션의 지침을 실행하기 전에 이전 이미지를 삭제해야합니다.
먼저 프로젝트 디렉토리에 컴파일 된 실행 파일이 있는지 확인하십시오.
이미지 파일을 생성하기 위해 프로젝트의 /build/package 디렉토리에 준비된 dockerfile이 있습니다. 다음 지침을 사용하여 Docker 이미지를 작성하십시오.
$ docker build -t go-web-practice -f ./build/package/dockerfile.run . 백그라운드에서 컨테이너를 실행할 때 다음 명령을 입력하십시오.
$ docker run -d -p 8000:8000 go-web-practicedocker-compose 사용하여 배포 실행이미지를 작성한 후 Docker-Compose 지침을 사용하여 직접 배포됩니다.
$ docker-compose -f deployments/docker-compose.yaml up포트 구성이 수정되면 Docker-Compose.yaml 구성 파일에서 Docker Run 명령 및 포트 매핑 필드를 수정해야합니다.
궁금한 점이 있으면 이메일로 저에게 연락하십시오 : [email protected]