컨테이너 Go
Go 컨테이너화
ySQL로 이동 계속.
나는 로컬에서 이동하는 GO를 용기화하여 로컬 MySQL에 연결하여 표 정보를 얻고 싶다.
완료된 코드는 GitHub 에 있습니다.
해봤어요.
docker 버전
$ docker -v
Docker version 18.09.0, build 4d60db4
DockerHub에서 golang 이미지 인쇄
docker 이미지를pull합니다.버전이 지정되지 않으면 latest가 설치됩니다.
Golang의 Official Repository $ docker pull golang
$ docker pull golang:1.8
문서 파일 만들기
Docker 이미지를 만드는 데 사용되는 파일입니다.# 自分のイメージの元として現在の公式レポジトリを使用
FROM golang:1.8
# 作者
MAINTAINER uguisuhohokekyo
# 環境変数の設定
# ENV aaa=bbb
# ワーキングディレクトリ
# WORKDIR
# ローカルからコピー
COPY /src /go/src/
COPY /config /go/config/
# 特定のネットワーク・ポートをコンテナが実行時にリッスンすることを Docker に伝えます
EXPOSE 8080
#パッケージインストール
RUN go get -u github.com/go-sql-driver/mysql
# コンテナ内で実行するコマンド
CMD ["go", "run", "/go/src/mysql.go"]
.dockerignore 제작
CLI에서 특정 파일 및 디렉토리를 제외합니다.# 特定のファイルとディレクトリはCLIの処理から除外
*/tmp*
.git*
!README.md
프로파일
지난번까지 코드에 설정이 있었어요.나는 12factor에 따라 설정을 코드에서 분리하고 싶다.
json의 설정 파일을 만들고 환경 의존적인 설정을 작성합니다. (이번에는 MYSQL의 연결 정보입니다.)
config/mysql-config.json{
"//": "docker用",
"host": "host.docker.internal",
"user": "uguisu",
"pass": "sqlserver",
"port": "3306",
"dbname": "goods"
}
"host.docker.internal"은 로컬 환경 DNS 이름입니다. 지정한 후 Docker 환경에서 로컬 환경으로 연결할 수 있습니다.
Networking features in Docker for Mac
mysql.go
가져오기 프로파일로 수정합니다.내용 참조GitHub.
이미지 구축
그럼 이미지 하나 만들어볼게요.t로 명명합니다.$ ls
Dockerfile README.md config src
$ docker build -t golang-mysql .
$ docker images | grep golang-mysql
golang-mysql latest 5d56e672d35d 10 minutes ago 715MB
docker run
이미지에서 프로세스를 생성합니다. docker run --rm -d -p 8080:8080 -it golang-mysql
옵션 요약 정보-i, --interactive Keep STDIN open even if not attached
-p, --publish list Publish a container's port(s) to the host
-d, --detach Run container in background and print container ID
-t, --tty Allocate a pseudo-TTY
--rm Automatically remove the container when it exits
확인
ySQL 시작 확인
http://localhost:8080/getfruit
다음은 성공입니다.
청소하다 docker stop $(docker ps -q)
에서 설명한 대로 해당 매개변수의 값을 수정합니다.
참고 자료
golang으로 Docker ~ go의 웹 서버를 시작하여 Docker로 만들어 보았습니다~
Dockerfile 모범 사례
Reference
이 문제에 관하여(컨테이너 Go), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/uguisu/items/39cb0faa2e50df3bacaa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
docker 버전
$ docker -v
Docker version 18.09.0, build 4d60db4
DockerHub에서 golang 이미지 인쇄
docker 이미지를pull합니다.버전이 지정되지 않으면 latest가 설치됩니다.
Golang의 Official Repository
$ docker pull golang
$ docker pull golang:1.8
문서 파일 만들기
Docker 이미지를 만드는 데 사용되는 파일입니다.
# 自分のイメージの元として現在の公式レポジトリを使用
FROM golang:1.8
# 作者
MAINTAINER uguisuhohokekyo
# 環境変数の設定
# ENV aaa=bbb
# ワーキングディレクトリ
# WORKDIR
# ローカルからコピー
COPY /src /go/src/
COPY /config /go/config/
# 特定のネットワーク・ポートをコンテナが実行時にリッスンすることを Docker に伝えます
EXPOSE 8080
#パッケージインストール
RUN go get -u github.com/go-sql-driver/mysql
# コンテナ内で実行するコマンド
CMD ["go", "run", "/go/src/mysql.go"]
.dockerignore 제작
CLI에서 특정 파일 및 디렉토리를 제외합니다.
# 特定のファイルとディレクトリはCLIの処理から除外
*/tmp*
.git*
!README.md
프로파일
지난번까지 코드에 설정이 있었어요.나는 12factor에 따라 설정을 코드에서 분리하고 싶다.
json의 설정 파일을 만들고 환경 의존적인 설정을 작성합니다. (이번에는 MYSQL의 연결 정보입니다.)
config/mysql-config.json
{
"//": "docker用",
"host": "host.docker.internal",
"user": "uguisu",
"pass": "sqlserver",
"port": "3306",
"dbname": "goods"
}
"host.docker.internal"은 로컬 환경 DNS 이름입니다. 지정한 후 Docker 환경에서 로컬 환경으로 연결할 수 있습니다.Networking features in Docker for Mac
mysql.go
가져오기 프로파일로 수정합니다.내용 참조GitHub.
이미지 구축
그럼 이미지 하나 만들어볼게요.t로 명명합니다.$ ls
Dockerfile README.md config src
$ docker build -t golang-mysql .
$ docker images | grep golang-mysql
golang-mysql latest 5d56e672d35d 10 minutes ago 715MB
docker run
이미지에서 프로세스를 생성합니다. docker run --rm -d -p 8080:8080 -it golang-mysql
옵션 요약 정보-i, --interactive Keep STDIN open even if not attached
-p, --publish list Publish a container's port(s) to the host
-d, --detach Run container in background and print container ID
-t, --tty Allocate a pseudo-TTY
--rm Automatically remove the container when it exits
확인
ySQL 시작 확인
http://localhost:8080/getfruit
다음은 성공입니다.
청소하다 docker stop $(docker ps -q)
에서 설명한 대로 해당 매개변수의 값을 수정합니다.
참고 자료
golang으로 Docker ~ go의 웹 서버를 시작하여 Docker로 만들어 보았습니다~
Dockerfile 모범 사례
Reference
이 문제에 관하여(컨테이너 Go), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/uguisu/items/39cb0faa2e50df3bacaa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ ls
Dockerfile README.md config src
$ docker build -t golang-mysql .
$ docker images | grep golang-mysql
golang-mysql latest 5d56e672d35d 10 minutes ago 715MB
이미지에서 프로세스를 생성합니다.
docker run --rm -d -p 8080:8080 -it golang-mysql
옵션 요약 정보-i, --interactive Keep STDIN open even if not attached
-p, --publish list Publish a container's port(s) to the host
-d, --detach Run container in background and print container ID
-t, --tty Allocate a pseudo-TTY
--rm Automatically remove the container when it exits
확인
ySQL 시작 확인
http://localhost:8080/getfruit
다음은 성공입니다.
청소하다 docker stop $(docker ps -q)
에서 설명한 대로 해당 매개변수의 값을 수정합니다.
참고 자료
golang으로 Docker ~ go의 웹 서버를 시작하여 Docker로 만들어 보았습니다~
Dockerfile 모범 사례
Reference
이 문제에 관하여(컨테이너 Go), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/uguisu/items/39cb0faa2e50df3bacaa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
docker stop $(docker ps -q)
에서 설명한 대로 해당 매개변수의 값을 수정합니다.참고 자료
golang으로 Docker ~ go의 웹 서버를 시작하여 Docker로 만들어 보았습니다~
Dockerfile 모범 사례
Reference
이 문제에 관하여(컨테이너 Go), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/uguisu/items/39cb0faa2e50df3bacaa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(컨테이너 Go), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/uguisu/items/39cb0faa2e50df3bacaa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)