以下是一个简化的例子,展示如何使用Docker来运行PostgreSQL数据库,并使用Go语言操作该数据库。
首先,创建一个Dockerfile
来构建一个包含Go环境的镜像:
# 使用官方Go镜像作为基础镜像
FROM golang:1.18-alpine
# 安装PostgreSQL客户端
RUN apk add --no-cache postgresql-client
然后,创建一个docker-compose.yml
文件来同时运行PostgreSQL和Go应用:
version: '3'
services:
db:
image: postgres:latest
environment:
POSTGRES_DB: 'example'
POSTGRES_USER: 'user'
POSTGRES_PASSWORD: 'password'
ports:
- "5432:5432"
goapp:
build: .
depends_on:
- db
接下来,编写Go代码连接并操作PostgreSQL数据库:
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/lib/pq"
)
func main() {
// 连接数据库
connStr := "postgres://user:password@db:5432/example?sslmode=disable"
db, err := sql.Open("postgres", connStr)
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 测试连接
if err := db.Ping(); err != nil {
log.Fatal(err)
}
fmt.Println("Connected to the database successfully!")
// 这里可以添加你的数据库操作代码
}
确保你有docker
和docker-compose
安装在你的机器上,然后运行以下命令:
docker-compose up --build
这将构建你的Go应用程序的Docker镜像,启动PostgreSQL服务,并运行你的Go程序。你的Go程序将连接到PostgreSQL数据库,并输出"Connected to the database successfully!"。