docker-compose的问题

来源:7-4 docker-compose命令行基本使用

无谓1024

2021-10-26

在使用Dockerfile进行多阶段构建制作镜像后,再使用docker-compose编写yml文件启动,容器是成功的开启了。
,但是把Dockerfile的编译操作写入yml文件,build成功也up成功。但容器启动失败了,日志是提示找不到启动文件。
一:Dockerfile内容

#build stage
FROM golang:1.15.6-alpine3.13 AS builder

# RUN apk add --no-cache git

WORKDIR /go/src/app

COPY . /go/src/app

RUN go env -w GOPROXY="https://goproxy.cn,direct" && go env -w GO111MODULE="on" && go get -d -v -u ./...

RUN go build -o /go/bin/AI_PREDICT

#final stage
FROM alpine:latest

# RUN apk --no-cache add ca-certificates

# RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 

WORKDIR /app
COPY --from=builder /go/src/app/conf /app/conf
COPY --from=builder /go/src/app/data/httpresource /app/data/httpresource
COPY --from=builder /go/bin/AI_PREDICT /app/

ENTRYPOINT /app/AI_PREDICT

CMD []

EXPOSE 56666

LABEL Name=servicego Version=0.0.1

二:docker-compose.yml

version: '3.8'

services:
  mysql:
    container_name: mysql_server
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    volumes:
      - "/var/lib/docker/volumes/mysql_data/_data:/var/lib/mysql"
      # - type: volume
      #   source: mysql_data
      #   target: /var/lib/mysql    
    networks:
      - ai_net

  redis:
    container_name: redis_server
    image: redis
    volumes:
      - type: volume
        source: redis_data
        target: /data    
    networks:
      - ai_net

  web:
    container_name: ai_predict
    build:
      context: .
      dockerfile: Dockerfile
      network: host
    # image: service_go_web
    volumes:
      - type: volume
        source: ai_predist_data
        target: /app
    networks:
      - ai_net
    ports:
      - "56666:56666"


networks:
  ai_net:
volumes:
  ai_predist_data:
  redis_data:
  # mysql_data:
写回答

1回答

麦兜搞IT

2021-10-28

您好,我建议你手动的利用你这个image去创建一个container,比如运行bash,进入到它的shell里,然后检查你的go build出来的bin文件是否在,是否可以运行等等。

1
0

Docker 系统性入门+进阶实践

Docker 完整知识体系及使用指南&优质实践

1953 学习 · 329 问题

查看课程