iT邦幫忙

0

透過Docker File建立python3.6相關問題

  • 分享至 

  • xImage

各位好
這幾天我在嘗試透過Dockerfile建立python3.6環境時遇到以下錯誤訊息
https://ithelp.ithome.com.tw/upload/images/20220808/2011004209DGB0yRzx.jpg
不確定是否因為Dockerfile中相關安裝指令過舊的關係,以下為我Dockerfile中相關安裝指令

RUN sudo apt-get --yes install software-properties-common
RUN sudo add-apt-repository --yes ppa:deadsnakes/ppa 
RUN sudo apt-get update
RUN sudo apt-get --yes install python3.6
RUN echo 'alias python="python3.6"' >> ~/.bashrc
RUN sudo apt update
RUN wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
RUN sudo python3.6 get-pip.py
RUN sudo apt-get --yes install libmysqlclient-dev

查詢過網路上別人相關解決方法似乎也無法,想請教大家是否有遇過相關情況以及解決方法

非常感謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
echochio
iT邦高手 1 級 ‧ 2022-08-09 11:21:48

Docker 是個小 VM
首先你要告知那那個 Base OS 是那個?
不會說你拿 CentOS 來下 apt 指令 吧? (雖然看圖是沒下錯指令)
好吧教您debug 的方法 將來比較容易 自己寫 Dockerfile

docker run -it ubuntu

等一下就近去 docekr 那個小VM了
進去就看到 # update 一下 與 看OS版本

root@40501ecd8edb:/# apt-get update && apt-get install
root@40501ecd8edb:/# cat /etc/issue
Ubuntu 22.04.1 LTS \n \l

Ubuntu 22.04.1 安裝 python 3.6 只能用 Compile Python....

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev \
libgdbm-dev libnss3-dev libedit-dev libc6-dev wget
wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz
sudo tar -xzf Python-3.6.15.tgz
cd Python-3.6.15
sudo ./configure --enable-optimizations  -with-lto  --with-pydebug
sudo make altinstall
python3.6

最後你會看到
https://ithelp.ithome.com.tw/upload/images/20220809/20110611STN3wfjFjo.png

換OS 版本比較快 ubuntu:18.04

docker run -it ubuntu:18.04

進去執行 就看到了

apt-get update
apt-get -y install python3
python3
obarisk iT邦研究生 1 級 ‧ 2022-08-09 12:36:34 檢舉

換 python 版本比較快...

echochio iT邦高手 1 級 ‧ 2022-08-09 14:49:22 檢舉

是呀 換 python 版本比較快...
那換 OS 版本就搞定的
有時候 請 RD 換版本很困難 ..... 幾萬行的程式要debug
看到就想死

感謝各位的幫忙與回覆。
我還是用python3.6,因為我同事要求的。
我是用Ubuntu 16.04.7,最後我改成如下就可以了!

# Python 3.6 安裝
RUN sudo apt-get --yes install software-properties-common
RUN sudo add-apt-repository -y ppa:jblgf0/python
RUN sudo apt-get update
RUN sudo apt-get --yes install python3.6
RUN echo 'alias python="python3.6"' >> ~/.bashrc
RUN sudo apt-get update
RUN wget --no-check-certificate https://bootstrap.pypa.io/pip/3.6/get-pip.py && \
	python3.6 get-pip.py
RUN pip install --upgrade pip

RUN sudo apt-get --yes install libmysqlclient-dev

我要發表回答

立即登入回答