标签: alpine-linux

在 Alpine Docker 容器中从源代码编译 Go 时出错:“loadinternal:找不到运行时/cgo”

我正在尝试为启用 FIPS 的 Go 版本构建 Alpine Docker 映像。为此,我尝试使用存储库dev.boringcrypto的分支从源代码构建 Go golang/go

运行后./all.bash,我收到以下错误:

Step 4/4 : RUN cd go/src && ./all.bash
 ---> Running in 00db552598f7
Building Go cmd/dist using /usr/lib/go.
# _/go/src/cmd/dist
loadinternal: cannot find runtime/cgo
/usr/lib/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64- 
alpine-linux-musl/bin/ld: cannot find Scrt1.o: No such file or directory
/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64- 
alpine-linux-musl/bin/ld: cannot find crti.o: No such file or directory
/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find -lssp_nonshared
collect2: error: ld returned 1 exit status

The command '/bin/bash …
Run Code Online (Sandbox Code Playgroud)

go docker alpine-linux

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

如何调试R包安装失败?

我正在尝试在 Jupyter 笔记本中安装 CRAN 软件包(从镜像),通过 JupyterLab 启动并在 Alpine Linux docker 映像中运行,大多数内容都是使用 conda 安装的。有些软件包可以工作...

install.packages('ABCanalysis', verbose=TRUE, INSTALL_opts=c('--debug'), repos=...)
Run Code Online (Sandbox Code Playgroud)

...输出...

system (cmd0): /opt/conda/lib/R/bin/R CMD INSTALL --debug 
also installing the dependency 'plotrix'

foundpkgs: plotrix, ABCanalysis, /tmp/RtmpqoorrU/downloaded_packages/plotrix_3.7-4.tar.gz, /tmp/RtmpqoorrU/downloaded_packages/ABCanalysis_1.2.1.tar.gz
files: /tmp/RtmpqoorrU/downloaded_packages/plotrix_3.7-4.tar.gz, 
    /tmp/RtmpqoorrU/downloaded_packages/ABCanalysis_1.2.1.tar.gz
1): succeeded '/opt/conda/lib/R/bin/R CMD INSTALL --debug -l '/opt/conda/lib/R/library' /tmp/RtmpqoorrU/downloaded_packages/plotrix_3.7-4.tar.gz'
2): succeeded '/opt/conda/lib/R/bin/R CMD INSTALL --debug -l '/opt/conda/lib/R/library' /tmp/RtmpqoorrU/downloaded_packages/ABCanalysis_1.2.1.tar.gz'
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done

install.packages('bitops', verbose=TRUE, INSTALL_opts=c('--debug'), repos=...)
Run Code Online (Sandbox Code Playgroud)

...但有些包不...

install.packages('bitops', verbose=TRUE, INSTALL_opts=c('--debug'), repos=...)

system (cmd0): /opt/conda/lib/R/bin/R CMD INSTALL …
Run Code Online (Sandbox Code Playgroud)

r docker conda alpine-linux jupyter-notebook

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

Selenium 在 alpine 3.6 容器上运行

我正在尝试在容器Selenium上运行。alpine 3.6(FROM alpine:3.6)

我在容器外壳中尝试的内容:

apk update
apk add python3
pip3 install -U selenium
apk add chromium
apk add chromium-driver
Run Code Online (Sandbox Code Playgroud)

并运行以下 python(使用 python3):

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
driver = webdriver.Chrome(chrome_options=options, executable_path=r'usr/bin/chromedriver') # Thrown an exception
Run Code Online (Sandbox Code Playgroud)

并得到以下异常:

selenium.common.exceptions.WebDriverException:消息:未知错误:Chrome无法启动:崩溃(驱动程序信息:chromedriver = 2.27(6ee44a7247c639c0703f291d320bdf05c1531b57),platform = Linux 5.0.0-23-generic x86_64)

selenium=3.141.0
chromium=57.0.2987.133
chromeDriver=2.27
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

python selenium selenium-chromedriver alpine-linux

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

Dotnet core 2.2 libgdipplus 异常

我正在 openshift 上运行 dotnet core 2.2 Web api,我有一个返回 FileResult 的 api 方法。该文件是使用 epplus 生成的。但是,在容器化应用程序后,端点返回以下错误。我相信如果使用 system.drawing 库,就会出现此异常,但是我没有使用任何 system.drawing 功能。

System.TypeInitializationException:“Gdip”的类型初始值设定项引发异常。---> System.DllNotFoundException: 无法加载 DLL 'libgdiplus': 找不到指定的模块。

public async Task<FileResult> GetPSACostCaseAndFeedData([FromQuery] int caseId, [FromQuery] int proposalId, [FromQuery] int equipmentId)
        {
            try
            {
                var queryParams = new Dictionary<string, string> { { "caseId", caseId.ToString() }, { "proposalId", proposalId.ToString() }, { "equipmentId", equipmentId.ToString() } };
                var restObj = _restFactory.createRestRequest(Method.GET, "ProposalService/PSACostData/GetPSACostCaseAndFeedData", queryParams);
                Console.WriteLine("Base URL - "  + restObj.Item2.BaseUrl);
                var response = await restObj.Item2.ExecuteTaskAsync(restObj.Item1);
                if (response.StatusCode == HttpStatusCode.OK) …
Run Code Online (Sandbox Code Playgroud)

c# openshift docker .net-core alpine-linux

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

ORA-12570: 网络会话: 意外的数据包读取错误

我们收到 ORA-12570:网络会话:从 .Net core 2.2 编写的 webapi 中出现意外的数据包读取错误。该 API 使用 kubernetes 托管在 GCP 中的 Alpine Docker OS 3.11 中。我们使用的是 Oracle.ManagedDataAccess.Core 版本 2.19.60。

我们得到的内部错误消息是

Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-12570: 网络会话: 意外的数据包读取错误 ---> OracleInternal.Network.NetworkException (0x80004005): ORA-12570: 网络会话: 意外的数据包读取错误 ---> System.Net.Sockets.SocketException (110):操作超时。

根据网站http://www.dba-oracle.com/t_ora_12570_tns_packet_reader_failure.htm,由于侦听器配置而发生 ORA-12570。真的吗?另请让我们知道 ODP.Net core 的跟踪在 Linux 中如何工作。

谢谢

oracle odp.net google-cloud-platform .net-core alpine-linux

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

为什么“sh -c 命令”中的 -c 在某些情况下是强制性的,而在其他情况下是不允许的?

我在我的 docker 配置 ( ) 中使用wait-for,这是一个 Linux POSIX (#!bin/sh) 脚本python:3.8.1-alpine3.11

在我的 docker-compose.yml 中,我使用以下命令加载脚本:

app:
   command: sh -c "wait-for postgres:5432 && python manage.py migrate 
                && python manage.py runserver 0.0.0.0:8000"
Run Code Online (Sandbox Code Playgroud)

然而,这会导致/bin/sh: wait-for: not found. 该文件肯定在那里,因为当我进入容器时我可以看到它。

通过容器内的反复试验,我发现以下方法可行:

/usr/src/app $  sh wait-for
Run Code Online (Sandbox Code Playgroud)

简而言之,使用该-c标志似乎会导致该选项。我知道sh -c将程序sh称为解释器并按照此命令的解释执行脚本,但是在这种情况下发生了什么/为什么会-c导致脚本出现问题?

-c例如,该行中的其他命令如果没有;则无法运行。sh python不会运行,它需要sh -c python.

在我的文件中使用的正确方法是什么docker-compose.yml?我应该有两个命令条目(一个用于sh wait-for,另一个用于sh -c [other commands])?

docker alpine-linux

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

standard_init_linux.go:211: exec 用户进程在 Alpine 上导致“没有这样的文件或目录”

我正在尝试按照使用多阶段构建来精简 Docker 文件的说明进行操作。特别是,我尝试将构建的可执行文件从构建器映像复制到alpine:latest以下 Dockerfile 中:

FROM debian:stable-slim AS builder

RUN apt-get update && \
    apt-get install -y --no-install-recommends fp-compiler fp-units-fcl fp-units-net libc6-dev

COPY src /whatwg/wattsi/src
RUN /whatwg/wattsi/src/build.sh

FROM alpine:latest
COPY --from=builder /whatwg/wattsi/bin /whatwg/wattsi/bin

ENTRYPOINT ["/whatwg/wattsi/bin/wattsi"]
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用运行生成的 docker 映像时docker run,出现错误

standard_init_linux.go:211: exec user process caused "no such file or directory"
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?我该如何解决这个问题?

docker alpine-linux

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

在 python alpine docker 中安装 python numpy 模块

我正在尝试 dockerize 我的 python 应用程序。在构建 Dockerfile 和安装 ie 的依赖项时显示错误scikit-learnnumpy

Dockerfile

FROM python:alpine3.8

RUN apk update
RUN apk --no-cache add linux-headers gcc g++

COPY . /app
WORKDIR /app
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 5001

ENTRYPOINT [ "python" ]
CMD [ "main.py" ]
Run Code Online (Sandbox Code Playgroud)

要求.txt

scikit-learn==0.23.2
pandas==1.1.3
Flask==1.1.2
Run Code Online (Sandbox Code Playgroud)

错误:找不到满足 setuptools 要求的版本(来自版本:无)错误:找不到 setuptools 的匹配发行版

完全错误

python numpy docker alpine-linux

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

Alpine Linux - sed - 使用 Alpine sed 实用程序时 -z 或 --null-data 开关的等效项是什么?

在之前的项目中,我使用 sed 实用程序将换行符替换为 NUL 字符,以与在 CI 服务器上添加发行说明的 API 兼容。

sed -zE 's/\r\n|\n/\\n/g' < CHANGELOG.md
Run Code Online (Sandbox Code Playgroud)

但是,在另一个项目中,我使用基于 alpine 的 docker 映像 ( mcr.microsoft.com/dotnet/core/sdk:3.1-alpine),并且在使用该实用程序时,alpine linux 上无法识别-z或映像。--null-datased

如何实现与 Alpine Linux实用程序中的-z或等效的功能?--null-datased

sed alpine-linux

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

带有 dotnet 的 alpine docker 图像看不到我的应用程序

我正在尝试使用 Alpine Linux docker 映像运行我的 dotnet 5 单文件应用程序。这是我的 Dockerfile

FROM mcr.microsoft.com/dotnet/aspnet:5.0-alpine    
WORKDIR /app
COPY ["Service.Translations", "/app/Service.Translations"]

CMD ["./Service.Translations", "--urls", "http://0.0.0.0:5000"]
Run Code Online (Sandbox Code Playgroud)

这是依赖于框架的应用程序。也尝试使用独立的,结果是相同的:未找到。Dotnet 看不到我的文件,sh 也看不到。

这是因为我在 Windows 上构建应用程序而导致的问题吗?所有教程均在图像内包含 alpine 编译应用程序。如果我将 Alpine 更改为 Ubuntu 或其他 - 一切都可以。

更新:好的,问题出在发布上。我必须将 --runtime 更改为 linux-musl-x64 而不是 linux-x64

.net asp.net docker .net-core alpine-linux

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