第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

ENV 變量不是通過 godotenv Docker

ENV 變量不是通過 godotenv Docker

Go
紫衣仙女 2022-08-09 20:44:33
我有一個(gè)用Go編寫的Web應(yīng)用程序,dockerized并使用gomod。我無法讓它讀取環(huán)境變量。運(yùn)行 docker-compose 時(shí),始終返回“獲取 env 時(shí)出錯(cuò),未通過”我正在使用godotenv來嘗試這樣做。以下是我的實(shí)現(xiàn)。我無法為我的生活找出哪里出了問題。如果有人能看到我錯(cuò)過的東西,你將挽救一條生命。main.go,.env,docker-compose.yml和Dockerfile都在項(xiàng)目的根目錄中。main.gofunc main() {    router := mux.NewRouter()    err := godotenv.Load()    if err != nil {        log.Fatalf("Error getting env, not comming through %v", err)    } else {        fmt.Println("We are getting the env values")    }    fmt.Println(os.Getenv("MY_ENV"))}.envMY_ENV=thisismyenvvariableDB_HOST=testdata123DB_DRIVER=testdata123DB_USER="testdata123"DB_PASSWORD=testdata123DB_NAME=testdata123DB_PORT=5432docker-compose.ymlversion: '3'services:  app:    container_name: template_123    build: .    ports:       - 8080:8080     restart: on-failure    volumes:      - api:/usr/src/app/    env_file:      - .env    depends_on:      - template-postgres              networks:      - template  template-postgres:    image: postgres:latest    container_name: startup_template_golang_db_postgres    environment:      - POSTGRES_USER=${DB_USER}        - POSTGRES_PASSWORD=${DB_PASSWORD}      - POSTGRES_DB=${DB_NAME}      - DATABASE_HOST=${DB_HOST}     ports:      - '5432:5432'    volumes:      - database_postgres:/var/lib/postgresql/data    env_file:      - .env    networks:      - template      pgadmin:    image: dpage/pgadmin4    container_name: pgadmin_container    environment:      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD}    depends_on:      - template-postgres    ports:      - "5050:80"    networks:      - template    restart: unless-stoppedvolumes:  api:  database_postgres:                  # Networks to be created to facilitate communication between containersnetworks:  startup_template:    driver: bridge
查看完整描述

1 回答

?
三國(guó)紛爭(zhēng)

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果你已經(jīng)在使用 你的,你真的不需要godotenv,因?yàn)榄h(huán)境已經(jīng)從docker-compose傳下來了:env_filedocker_compose.yml


version: '3'


services:

    app:

        image: busybox:latest

        command: sh -c 'echo "Hello $$USER!"'

        env_file:

            - .env

# .env

USER=user1

$ docker-compose up

Recreating test_app_1 ... done

Attaching to test_app_1

app_1  | Hello user1!

test_app_1 exited with code 0

這比嘗試將 .env 文件復(fù)制到容器中更好,因?yàn)檫@意味著您可以傳遞環(huán)境變量,而無需在每次;)


如果你仍然想使用godotenv,我發(fā)現(xiàn)通過簡(jiǎn)單地從Dockerfile中取消注釋該行,.env文件可以正確加載(因?yàn)間odotenv在目錄中找到了它,而如果它被注釋,它就不會(huì))。COPY --from=builder /app/.env .


$ docker-compose up

Starting template_123 ... done

Attaching to template_123

template_123 | We are getting the env values

template_123 | thisismyenvvariable

template_123 exited with code 0

如果你想讓它與你的文件系統(tǒng)保持同步,你需要使用一個(gè)卷來鏈接你的.env和文件系統(tǒng)上的那個(gè),或者正如我所說,完全放棄,因?yàn)樗谀愕那闆r下并不是很有用。godotenv


查看完整回答
反對(duì) 回復(fù) 2022-08-09
  • 1 回答
  • 0 關(guān)注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)