go - Docker撰写working_dir问题
问题描述
我正在尝试使用 docker-compose 运行一个 golang 应用程序,下面是我的 compose 配置。
version: '2'
services:
#Application container
go:
image: golang:1.8-alpine
ports:
- "80:8080"
links:
- mongodb
environment:
DEBUG: 'true'
PORT: '8080'
working_dir: /go/src/simple-golang-app
command: go run main.go
volumes:
- ./simple-golang-app:/go/src/simple-golang-app
mongodb:
image: mvertes/alpine-mongo:3.2.3
restart: unless-stopped
ports:
- "27017:27017"
在使用命令“docker-compose up”运行撰写时,即使 main.go 在工作目录中可用,我也会收到错误“stat main.go:没有这样的文件或目录”。
解决方案
当您的主机目录布局为
oxo@thor ~/Dropbox/Documents/code/docker/golang_working_dir $ find .
.
./docker-compose.yaml
./simple-golang-app
./simple-golang-app/main.go
所以我们在这里
cd ~/Dropbox/Documents/code/docker/golang_working_dir
docker-compose up
对于涉及依赖项的更复杂的构建,我使用 Dockerfile :
FROM golang:1.8-alpine
RUN mkdir -p /go/src/simple-golang-app/
COPY simple-golang-app/main.go /go/src/simple-golang-app
WORKDIR /go/src/simple-golang-app
RUN apk add --no-cache git mercurial && go get -v -t ./... && apk del git mercurial
RUN go install ./...
RUN go build
ENV PORT 9000
现在更新您的 docker-compose.yaml 以使用这个新图像:
老的
image: golang:1.8-alpine
新的
image: nirmal_golang_alpine:latest
所以你的命令是
docker build --tag nirmal_golang_alpine
docker-compose up
推荐阅读
- php - 解析错误:语法错误,第 48 行出现意外的 '<<' (T_SL)
- python - 从文档中提取 n-gram 并计算它们的频率
- java - 在 Java Selenium 中比较两个字符串的 ArrayList 以获取其中的值
- mysql - 名称只返回一个值,SQL Query
- r - 每 15 分钟进行一次时间序列分析
- kotlin - 如何在 Kotlin recycleview 适配器中更改可见性和文本颜色
- javascript - 如何使用 discord.js 检查权限是否设置为中性(“/”)?
- reactjs - 直接在地址栏中输入或重新加载时,React 不显示页面
- c++ - 如何避免分配后删除班级成员?
- python - 扩展 numpy argmin argmax