小编Ric*_*ard的帖子

如何使用1.5+创建静态链接的golang可执行文件

golang version <1.5 - 有很多静态链接示例,帖子和食谱.> = 1.5怎么样?(谷歌搜索没有返回我的搜索条件的有用结果.)任何人有任何关于如何生成可以在基本rkt(来自CoreOS)容器内执行的静态链接二进制文件的建议?

我走了:

$go version
go version go1.5 linux/amd64
Run Code Online (Sandbox Code Playgroud)

当我尝试运行我的容器时:

sudo rkt --insecure-skip-verify run /tmp/FastBonusReport.aci
Run Code Online (Sandbox Code Playgroud)

我明白了:

[38049.477658] FastBonusReport[4]: Error: Unable to open "/lib64/ld-linux-x86-64.so.2": No such file or directory
Run Code Online (Sandbox Code Playgroud)

建议容器中的可执行文件依赖于此lib,因此不是静态的.

我的清单看起来像:

cat <<EOF > /tmp/${myapp}/manifest
{
    "acKind": "ImageManifest",
    "acVersion": "0.9.0",
    "name": "${lowermyapp}",
    "labels": [
        {"name": "os", "value": "linux"},
        {"name": "arch", "value": "amd64"}
    ],
    "app": {
        "exec": [
            "/bin/${myapp}"
        ],
        "user": "0",
        "group": "0"
    }
}
EOF
Run Code Online (Sandbox Code Playgroud)

我的命令行来构建二进制文件看起来像:

go build ${myapp}.go
Run Code Online (Sandbox Code Playgroud)

文章有几个例子golang <1.5.然后在CoreOS网站上有这篇入门文章.

go rkt

7
推荐指数
2
解决办法
7263
查看次数

尝试在docker容器中构建我的应用程序"找不到包"

这是我的Dockerfile.

FROM ubuntu
MAINTAINER me <my@email.com>
RUN apt-get update && apt-get install -y \
build-essential \
curl \
git \
make
# Get and compile go
RUN curl -s https://go.googlecode.com/files/go1.2.1.src.tar.gz | tar -v -C /usr/local -xz
RUN cd /usr/local/go/src && ./make.bash --no-clean 2>&1
ENV PATH /usr/local/go/bin:/go/bin:$PATH
ENV GOPATH /go
RUN go get github.com/gorilla/feeds
WORKDIR /go 
CMD go version && go install feed && feed
Run Code Online (Sandbox Code Playgroud)

它构建得很好:

sudo docker build -t ubuntu-go .
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我得到一个包错误:

sudo docker run -v /home/rbucker/go:/go --name go ubuntu-go …
Run Code Online (Sandbox Code Playgroud)

go docker

6
推荐指数
1
解决办法
3830
查看次数

如何配置 systemd 计时器的结束时间

我正在使用 CoreOS 和 SystemD 计时器来运行我的报告......

我有某些监控报告需要在接下来的 12 小时内每 3 小时运行一次,每半小时运行一次。如果我想在 1230 醒来以停止报告,那么实现起来非常简单。

systemd 计时器中是否有“终止计时器”选项或类似的选项>

timer systemd coreos

6
推荐指数
1
解决办法
2186
查看次数

我的Docker容器应用可以访问主机的麦克风和扬声器吗?(Mac,Windows,Linux)

我正在构建一个无头软件电话应用程序。我知道我可以使用给定的工具构建wss或Web服务器...但是我的Web应用程序需要使用主机的扬声器和麦克风来进行一些pjsip和其他编解码器操作。这些设备是否在Mac / Windows / Linux主机和Docker容器之间共享?

docker

6
推荐指数
1
解决办法
2366
查看次数

如何在CoreOS安装上自定义bashrc,bash_profile或profile?

我完全意识到CoreOS主要是不可变的,所以在用户空间中没有安装任何东西.对于99%的用例,我同意.当我需要完成一些实际的工作时,我正在使用CoreOS /工具箱,但我还需要稍微更新用户环境,以便我可以正确地使用Docker-ify我的开发环境.

coreos

3
推荐指数
1
解决办法
3088
查看次数

OTP热插拔是一致的和可预测的

给定一个具有多个模块的工作erlang项目...想要热插拔多个相关模块...是同步(全部或全部)的新模块的过渡,或者它们是一次安装一个......这样任何在飞行中的交易可能有一个不可预测的结果.

例如:

我在生产中有两个模块... foo和bar.这样foo和bar之间存在依赖关系......代码的执行从foo移动到bar.现在我有foo和bar的更新,我想同时替换它们.这样我不希望事件在foo(1)和bar(2),或foo(2)和bar(1)上执行.

在SQL上下文中,这将被称为事务.

erlang erlang-otp

2
推荐指数
1
解决办法
68
查看次数

golang中通过interface{}的通用结构图

我有两种基于第三方代码的结构类型,我无法更改

type AddEvent struct {
}

type DeleteEvent struct {
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个以字符串为键、以对象为值的映射,因此每次收到新事件时,我都会将其添加到映射中,IE 映射应如下所示:

EventMap:
    event1,AddEvent{}
    event2,AddEvent{}
    event2,DeleteEvent{}
Run Code Online (Sandbox Code Playgroud)

AddEvent 和DeleteEvent 未定义为接口的问题。
有没有办法使用任何结构作为值在 go 中创建通用映射,如果是的话,我如何读取它,我是否需要使用反射检查类型

I.E
event:=EventMap[event1]
if reflect.TypeOf(event)==AddEvent{
}else if reflect.TypeOf(event)==DeleteEvent{
}
Run Code Online (Sandbox Code Playgroud)

go

1
推荐指数
1
解决办法
2110
查看次数

标签 统计

go ×3

coreos ×2

docker ×2

erlang ×1

erlang-otp ×1

rkt ×1

systemd ×1

timer ×1