Unten finden Sie den Inhalt meiner docker-compose.yml-Dateien:
Code: Select all
version: "3.9"
services:
mysql_service:
image: mysql:8.0
ports:
- "3307:3306"
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: ${DB_NAME}
volumes:
- mysql_data:/var/lib/mysql
env_file:
- .env
networks:
- app_network
email_service:
build:
context: ../email-service
dockerfile: Dockerfile
ports:
- "50051:50051"
networks:
- app_network
job_portal:
build:
context: ../gorm_recruiter
dockerfile: Dockerfile
ports:
- "8080:8080"
depends_on:
- mysql_service
- email_service
networks:
- app_network
environment:
DB_HOST: mysql_service
DB_PORT: 3306
DB_USER: ${DB_USER}
DB_PASSWORD: ${DB_PASSWORD}
DB_NAME: ${DB_NAME}
networks:
app_network:
volumes:
mysql_data:
Code: Select all
DB_USER=root
DB_PASSWORD=example
DB_NAME=crud_db
DB_HOST=mysql_service
DB_PORT=3306
Code: Select all
func main() {
fmt.Println("Started main function")
err := godotenv.Load()
if err != nil {
log.Fatalf("Error loading .env file")
}
dbUser := os.Getenv("DB_USER")
dbPassword := os.Getenv("DB_PASSWORD")
dbName := os.Getenv("DB_NAME")
dbHost := os.Getenv("DB_HOST")
dbPort := os.Getenv("DB_PORT")
//! This is where it says the error is :-> resolution of dsn
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPassword, dbHost, dbPort, dbName)
fmt.Println(dsn)
driver, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
// Logger: logger.Default.LogMode(logger.Info),
})
if err != nil {
log.Fatalf("failed to connect to the database: %v", err)
return
}
...rest of the code
}
Es soll die drei Container ausführen, die ich erwähnt habe. Der MySQL- und E-Mail-Dienst ist betriebsbereit, job_portal jedoch nicht:
Code: Select all
...logs
[+] Running 4/3
✔ Network gorm_recruiter_app_network Created 0.0s
✔ Container gorm_recruiter-email_service-1 Created 0.1s
✔ Container gorm_recruiter-mysql_service-1 Created 0.1s
✔ Container gorm_recruiter-job_portal-1 Created 0.0s
Attaching to gorm_recruiter-email_service-1, gorm_recruiter-job_portal-1, gorm_recruiter-mysql_service-1
gorm_recruiter-mysql_service-1 | 2025-01-17 05:38:20+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.40-1.el9 started.
gorm_recruiter-email_service-1 | 2025/01/17 05:38:20 Email service is running on port 50051...
gorm_recruiter-job_portal-1 | Started main function
gorm_recruiter-job_portal-1 | root:example@tcp(mysql_service:3306)/crud_db?charset=utf8mb4&parseTime=True&loc=Local
gorm_recruiter-job_portal-1 |
gorm_recruiter-job_portal-1 | 2025/01/17 05:38:21 /app/main.go:31
gorm_recruiter-job_portal-1 | [error] failed to initialize database, got error dial tcp 172.29.0.3:3306: connect: connection refused
gorm_recruiter-job_portal-1 | 2025/01/17 05:38:21 failed to connect to the database: dial tcp 172.29.0.3:3306: connect: connection refused
gorm_recruiter-mysql_service-1 | 2025-01-17 05:38:21+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
gorm_recruiter-job_portal-1 exited with code 1
gorm_recruiter-mysql_service-1 | 2025-01-17 05:38:21+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.40-1.el9 started.
..logs
Code: Select all
FROM golang:1.22
WORKDIR /app
COPY . .
RUN go mod download
RUN go build -o job_portal main.go
EXPOSE 8080
CMD ["./job_portal"]
Code: Select all
docker network inspect gorm_recruiter_app_network
[
{
"Name": "gorm_recruiter_app_network",
"Id": "0175ee7a7dfa24e8e057d8622a3c1fefc28f90e579ba1df984bbe19b38e8c661",
"Created": "2025-01-17T05:38:20.398763586Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.29.0.0/16",
"Gateway": "172.29.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"4baeab4020b1496aae2e1243f1fc17293bc9fa929b6ce98f0d0ace3bf98180dd": {
"Name": "gorm_recruiter-email_service-1",
"EndpointID": "6a055273f688cdf3d2d9df06ba8c601146f687c067894e017c324ba0e926345e",
"MacAddress": "02:42:ac:1d:00:02",
"IPv4Address": "172.29.0.2/16",
"IPv6Address": ""
},
"9d4cb8d18fcb8f504bb24dcd2812268bf482f955246b844537d8c1c35796c58d": {
"Name": "gorm_recruiter-mysql_service-1",
"EndpointID": "ac10d2d48d81c27c925033256e0a2cb549178dbbbbbaf31f96f92a70b85328b6",
"MacAddress": "02:42:ac:1d:00:03",
"IPv4Address": "172.29.0.3/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {
"com.docker.compose.network": "app_network",
"com.docker.compose.project": "gorm_recruiter",
"com.docker.compose.version": "2.18.1"
}
}
]