溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用alpine鏡像運行c++程序

發布時間:2020-10-26 16:12:58 來源:億速云 閱讀:789 作者:Leah 欄目:開發技術

如何使用alpine鏡像運行c++程序?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

需求

工作中我們如果要制作鏡像,一般都是直接pull官方鏡像,比如我們要運行一個c++程序我們可能直接pull一個gcc,或者ubuntu鏡像就可以了,但是存在一個問題,我們只是要運行一個c++程序卻要運行一個ubuntu系統,這是非常消耗資源的,所以就去網上搜了搜發現早期的docker都是使用alpine鏡像來做基礎鏡像,所以就用alpile鏡像來制作鏡像

dockerfile

FROM alpine:3.7

MAINTAINER Rethink 
#更新Alpine的軟件源為國內(清華大學)的站點,因為從默認官源拉取實在太慢了。。。
RUN echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main/" > /etc/apk/repositories

RUN apk update \
    && apk upgrade \
    && apk add --no-cache bash \
    bash-doc \
    bash-completion \
    && rm -rf /var/cache/apk/* \
    && /bin/bash
COPY a.out /bin
CMD ["./a.out"]

問題:

a.out是我在宿主機上編譯的一個可執行程序,但是新生成的鏡像是啟動不了的,這就讓我很奇怪

改進:

后來想了想./a.out之所以不能夠運行是因為a.out是在我自己的ubuntu系統上編譯出來的,而我的鏡像確實alpine鏡像,所以解決這個文件就很簡單了

方法一:

在ubuntu宿主機上下載交叉編譯工具,使用交叉工具編譯我們的源碼,生成可執行程序

方法二:

我們可以偷個懶直接使用docker pull一個安裝了apline-gcc鏡像,在上面編譯好我們的源碼,將生成的可執行程序放到apline鏡像就可以了

方法三:

我們可以在alpine鏡像中使用源碼進行編譯

方法三 dockerfile

FROM alpine:3.7

MAINTAINER Rethink 
#更新Alpine的軟件源為國內(清華大學)的站點,因為從默認官源拉取實在太慢了。。。
RUN echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main/" > /etc/apk/repositories

RUN apk update \
    && apk upgrade \
    && apk add --no-cache bash \
    bash-doc \
    bash-completion \
    && rm -rf /var/cache/apk/* \
    && /bin/bash

RUN apk add gcc

RUN mkdir /chun

COPY hello.c /chun

WORKDIR /chun/

RUN gcc hello.c

CMD ["./a.out"]

看完上述內容,你們掌握如何使用alpine鏡像運行c++程序的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女