gpt4 book ai didi

docker - Reflex Golang与docker,docker-compose和makefile

转载 作者:行者123 更新时间:2023-12-01 22:20:14 26 4
gpt4 key购买 nike

希望你们一切都好!
我读了很多关于这个问题的书,但没有找到对我有用的东西..
说明背景:
我正在用go编写rest api,但此处显示的代码是出于可读性的伪代码。
我将docker与docker-compose结合使用,后者构建了一个CMD一个makefile的dockerfile,而我对dev env的反射存在问题。 Reflex已启动,但更改后不会重新加载。
我可能会错过一些东西,我是Go和Docker的新手:)
确定代码时间:
我的docker-compose.yaml:

version: "3"
services:
app:
build: .
ports:
- "80:8000"
volumes:
- appsrc:/app
environment:
CODE_ENV: dev
networks:
- apbp-network

networks:
apbp-network:
driver: bridge
volumes:
appsrc:
谁叫我的Dockerfile:
FROM golang:latest

WORKDIR /app

COPY . .

RUN make --no-print-directory install

CMD make --no-print-directory run
谁叫我的Makefile
GO_PROJECT_NAME := test

go_prep_build:
@echo "\n....Preparing installation environment for $(GO_PROJECT_NAME)...."
go get github.com/cespare/reflex

go_dep_install:
@echo "\n....Installing dependencies for $(GO_PROJECT_NAME)...."
go mod download

go_build:
@echo "\n....Building $(GO_PROJECT_NAME)...."
go build -o test ./cmd/test

go_run:
@echo "\n....Running $(GO_PROJECT_NAME)...."
./test


# Project rules
install:
$(MAKE) go_prep_build
$(MAKE) go_dep_install
$(MAKE) go_build

run:
reflex --start-service -r '\.go$$' make restart


restart:
@$(MAKE) go_build
@$(MAKE) go_run

.PHONY: go_prep_build go_dep_install go_build go_run install run restart reflex
我的./cmd/test文件:
package main

import (
"fmt"
"net/http"
)

func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "hello world")
})

http.ListenAndServe(":8000", nil)
}

一切正常,只是我的reflex命令在更改后不会重新加载,例如将hello world更改为hello world 2不会重建。
我的输出:
app_1  | reflex --start-service -r '\.go$' make restart
app_1 | [00] Starting service
app_1 | [00]
app_1 | [00] ....Building apbp....
app_1 | [00] go build -o test ./cmd/test
app_1 | [00]
app_1 | [00] ....Running apbp....
app_1 | [00] ./test
我从字面上看一直坚持下去,我认为这是我误会的一件事,所以如果有人可以帮助解释这一点,真的很受欢迎:)
感谢阅读,如果您需要更多信息,请问我:)

最佳答案

好的,只是我的卷阻止了重新加载,但是我不明白为什么这样做,所以如果有人可以解释它,那将是受欢迎的!
我只是将docker-compose.yaml更改为:

version: "3"
services:
app:
build: .
ports:
- "80:8000"
volumes:
- .:/app
environment:
CODE_ENV: dev
networks:
- apbp-network

networks:
apbp-network:
driver: bridge
感谢您的答复和时间!

关于docker - Reflex Golang与docker,docker-compose和makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63962911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com