Open JuTemp opened 1 month ago
可以。
如果在外面编译好 mita 然后复制进容器,请参考下面的命令添加用户名和用户组。
如果在容器里面编译,建议使用 golang 容器编译 mita 然后再复制到下一个容器里面,并且添加用户名和用户组。
谢谢作者的回复 我把我的实现过程写下来 可以给别人看看
先把本项目git clone下来 进入文件夹内
根据Makefile文件 编译项目 只需要mita二进制文件就行
因为我运行在Alpine容器内 所有我添加里一个环境变量 GOCC=musl-gcc
也就是
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 GOCC=musl-gcc go build -ldflags="-s -w" -o mita-musl cmd/mita/mita.go
然后将这个二进制文件放进Alpine容器内
Dockerfile:
FROM alpine
COPY ./mita-musl /app/mita
COPY ./run.sh /app/run.sh
RUN chmod +x /app/run.sh && adduser -H -D -g "" mita && mkdir -p /etc/mita
WORKDIR /app
CMD [ "sh", "/app/run.sh" ]
run.sh:
set -e
./mita run &
sleep 2
./mita apply config ./mita.json
./mita start
wait -n
docker-compose.yml:
services:
mita:
image: mita
ports:
- 40000:40000
- 41000:41000/udp
volumes:
- ./mita.json:/app/mita.json
mita.json:
{
"loggingLevel": "INFO",
"portBindings": [
{
"port": 40000,
"protocol": "TCP"
},
{
"port": 41000,
"protocol": "UDP"
}
],
"users": [
{
"name": "username",
"password": "password"
}
]
}
修改mita.json 然后docker compose up -d就能用了
NekoBoxForAndroid 使用v3.6.0的mieru插件 而不是v2.2.0 mieru-3.6.0
FROM golang:alpine AS builder
RUN apk update && apk add --no-cache git
RUN git clone https://github.com/enfein/mieru.git /build
WORKDIR /build
RUN go mod tidy
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 GOCC=musl-gcc go build -ldflags="-s -w" -o mita cmd/mita/mita.go
FROM alpine AS base
COPY --from=builder /build/mita /usr/local/bin/
WORKDIR /app
COPY . .
RUN chmod +x ./start.sh && adduser -H -D -g "" mita && mkdir -p /etc/mita
CMD ["./start.sh"]
- start.sh
```sh
#!/bin/sh
set -e
mita run &
sleep 2
mita apply config ./conf/config.json
mita start
mita describe config
wait -n
我想使用docker 部署mita README没有给docker镜像地址 hub.docker.com上也没有 我试图自己编译项目 但是无法运行 我想在Alpine上运行mita
容器内没有systemctl 也没有办法使用mita用户登陆