为了账号安全,请及时绑定邮箱和手机立即绑定

如何运行我的 main.go 文件而不必在容器之外单独运行它们?

如何运行我的 main.go 文件而不必在容器之外单独运行它们?

Go
慕的地8271018 2022-10-24 15:00:00
我有一个main.go文件,用于运行一个应用程序,该应用程序启动一个服务器,该服务器公开一个端口,我可以从中运行端点。我试图将它 dockerise 并尽可能制作容纳应用程序和数据库的工作容器,但我似乎仍然必须在运行go run main.go后运行docker-compose up -d。// present folder structure.├── cities.json // holds records of all city names├── docker-compose.yaml ├── dockerfile├── go.mod├── go.sum├── localmon.sh // bash script that does a mongoimport to import all records from cities.json into the db├── main.go└── README.md有人告诉我,我可能必须映射一个卷,知道它的位置并让它执行。另一种选择(更复杂)是 bash 脚本(或两者兼而有之?)我有点不确定如何去做,或者我现在应该如何处理我的 compose 文件和 dockerfile。version: '3.3'services:  db:    hostname: mongo-test    container_name: "mongo-test"    image: mongo    networks:      - app_test    ports:         - "8001:27017"     #   - "27017:27017"    env_file: .env    restart: unless-stopped    volumes:      - ".mongodata:/data/db"    app:     hostname: app-test    container_name: "app"    build:       context: .      dockerfile: dockerfile    networks:      - app_test    ports:       - "54321:8080"      # - "8080:8080"    restart: unless-stopped    env_file: .envnetworks:  app_test: {}FROM golang:1.17.5-alpine3.15RUN mkdir /appADD . /appWORKDIR /app# Copies and downloads necessary dependenciesCOPY go.mod ./COPY go.sum ./RUN go mod downloadRUN go build -o main .# Port 8080 exposed for useEXPOSE 8080# Command that starts the containerCMD ["./main"]env file that holds some DB related stuff for the main.go file to use.DB_URI=mongodb://mongo-test:8001CITY_DB=nht_citiesCOL_USER=userCOL_CITY=cityUSER_AUTH_TOKEN=50dba...// localmon.sh#! /bin/bashmongoimport --host 192.168.0.101  --port 8001 --db nht_cities --collection city --type json --file ./cities.json docker-compose logs在运行最近的docker-compose up -d
查看完整描述

1 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

请更改.env文件中的以下行:

DB_URI=mongodb://mongo-test:8001

DB_URI=mongodb://mongo-test:27017

docker compose up当您使用该命令启动容器时,它们会在同一个容器网络中运行。这意味着您需要指定容器端口而不是主机端口。容器端口在 Docker 王国中始终排在第二位:<host port>:<container port>.


查看完整回答
反对 回复 2022-10-24
  • 1 回答
  • 0 关注
  • 245 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号