Criei um servidor web em Go e tentei criar uma imagem docker para fins de aprendizado. Quando inicio a imagem docker, ela não detecta nenhuma variável de ambiente com "docker run", mas se eu iniciar "docker compose", consigo vê-las preenchidas, o que estou perdendo? Não entendi
principal.ir:
func init() {
fmt.Println("Inizializziamo...")
cmd := exec.Command("env")
stdout, err := cmd.Output()
if err != nil {
fmt.Println(err.Error())
return
}
// Print the output
fmt.Println(string(stdout))
}
docker-compose.yml
services:
blog:
build: .
ports:
- "8080:8080"
environment:
- DB_HOST=db
- DB_PORT=5432
- DB_USER=test_user
- DB_PASSWORD=psw
- DB_NAME=mydb
- PORT=8080
depends_on:
- db
db:
image: postgres:15
restart: always
environment:
- POSTGRES_USER=test_user
- POSTGRES_PASSWORD=psw
- POSTGRES_DB=mydb
ports:
- "5432:5432"
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
# docker compose run --rm blog env
[+] Creating 1/0
✔ Container mywebserver-db-1 Running 0.0s
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=154d98c6277d
TERM=xterm
DB_PASSWORD=psw
DB_NAME=mydb
PORT=8080
DB_HOST=db
DB_PORT=5432
DB_USER=test_user
HOME=/root
com docker run sem variáveis env
# docker run xxxx/mywebserver
Inizializziamo...
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=0f42e93ff038
HOME=/root
estou fazendo algo errado? Obrigado pela ajuda