新来的,想知道是否有人有以非 root 用户身份构建映像的经验?
我正在构建 Kotlin 项目(两步构建),我现在的目标是以非 root 用户身份构建它。这是我的 Dockerfile 的样子。任何帮助,将不胜感激:
# Build
FROM openjdk:11-jdk-slim as builder
# Compile application
WORKDIR /root
COPY . .
RUN ./gradlew build
FROM openjdk:11-jre-slim
# Add application
COPY --from=builder /root/build/libs/*.jar ./app.jar
# Set the build version
ARG build_version
ENV BUILD_VERSION=$build_version
COPY docker-entrypoint.sh /
RUN chmod 777 /docker-entrypoint.sh
CMD /docker-entrypoint.sh
Run Code Online (Sandbox Code Playgroud) 由于我的项目结构,我面临着大型 docker 构建上下文的问题。在我的根目录中,我有用于公共代码和微服务文件夹的 lib 文件夹。现在我想为 miscroservice1 构建只包含 lib 文件夹并忽略其他微服务。
我在根文件夹中运行 docker build 命令,因为在 microservice 文件夹中运行命令给出错误 Forbidden path outside of build context
rootFolder
-- lib
-- microservice1/Dockerfile
-- microservice2/Dockerfile
-- microservice3/Dockerfile
Run Code Online (Sandbox Code Playgroud)
我有两个解决方案,但暂时没有尝试
我正在尝试上述两种解决方案。任何人都可以建议任何最佳做法吗?
我见过几个.dockerignorePython 项目的文件示例,其中*.pyc文件和/或__pycache__文件夹被忽略:
**/__pycache__
*.pyc
Run Code Online (Sandbox Code Playgroud)
由于无论如何这些文件/文件夹都会在容器中重新创建,我想知道这样做是否是一个好习惯。
我试图使用本地可用的Dockerfile构建Docker镜像.
docker build -t newimage .
Run Code Online (Sandbox Code Playgroud)
我之前也多次使用过这个命令,但不知何故它现在不能正常工作,我找不到它的原因.
如果有人可以帮助我寻找可能的解决方案或可能的区域来寻找问题,我将会非常有帮助.
我已经查看了其他可能与之相关的帖子: Docker构建标记存储库名称
我正在尝试在 linux 容器内运行的 docker 中安装 pyodbc 但出现以下错误
src/pyodbc.h:56:10: fatal error: sql.h: No such file or directory
#include <sql.h>
^~~~~~~
compilation terminated.
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for pyodbc
Run Code Online (Sandbox Code Playgroud)
这是我的 dockerfile
FROM mcr.microsoft.com/azure-functions/python:2.0
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
COPY . /home/site/wwwroot
FROM ubuntu
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && \
apt-get -y install gcc mono-mcs && \
rm -rf /var/lib/apt/lists/*
FROM python
RUN apt-get update && apt-get install -y python3-pip
# RUN …Run Code Online (Sandbox Code Playgroud) 我想知道是否有关于如何在一个期间将凭证注入Docker容器的最佳实践docker build.在我的Dockerfile中,我需要获取需要基本身份验证的资源Web服务器,并且我正在考虑如何在不对其进行硬编码的情况下将凭据带入容器的正确方法.
.netrc文件怎么样并使用它curl --netrc ...?但安全呢?我不喜欢将凭据与Dockerfile一起保存在源存储库中.
有没有例如使用参数或环境变量注入凭证的方法?
有任何想法吗?
我刚刚意识到ADD/COPY命令不允许任何访问主机当前工作目录之外的文件或目录.还有一件事是,如果在ADD/COPY命令之后指定文件/目录的绝对路径作为源路径,则也不允许它.
请参考这个,并有快乐的黑客!:)
================================================== =====================
我想将主机用户主目录下的文件复制/添加到同一用户的容器主目录中.
首先,可以将用户更改为在每个主机上使用Dockerfile构建docker镜像的用户.例如,在我的主机中,我有一个用户"测试".在另一个人的主持人中,将有一个用户"新手".在每个主机中,我的Dockerfile将被构建/使用.
以下是我复制/添加文件的测试语法.
...
RUN mkdir -p /home/${USER}/.ssh
ADD /home/${USER}/.ssh/id_rsa* /home/${USER}/.ssh/
or COPY /home/${USER}/.ssh/id_rsa* /home/${USER}/.ssh/
...
Run Code Online (Sandbox Code Playgroud)
当我尝试生成此Docker文件时,将显示以下错误.
Step 43/44 : ADD /home/user/.ssh/id_rsa* /home/${USER}/.ssh/
No source files were specified
Run Code Online (Sandbox Code Playgroud)
请指导我做我想做的事.:) 谢谢.
在构建docker图像时docker build -t name:tag --network="host",它将在构建期间为RUN指令设置网络模式(默认为"default")
所以我试图用DOKCER-COMPOSE构建Docker镜像:
version: '3'
services:
ezmove-2.0:
network_mode: "host"
build:
context: .
ports:
- "5000:5000"
Run Code Online (Sandbox Code Playgroud)
所以按照上面的compose文件,我正在尝试构建图像,但是如何在构建时指定docker-compose中的--network ="host"模式
在 dockerizing 遗留应用程序方面需要帮助 我有一个遗留应用程序,其中包含多个组件(msi 安装程序)。这些组件使用各种技术,如 C#、windows 窗体、C++、MFC、.net 远程处理、C# webservices(asmx)。在这些组件中,有几个是桌面 ui 应用程序。我正在研究 dockerizing 这些组件的可行性。我知道无法从 docker 容器显示 UI,但 UI 组件也有一个命令行对应物,我们可以使用它执行所有可以用 UI 完成的操作。我从一个简单的组件开始。这包含用 C# 开发的 asmx Web 服务,通常托管在 Windows 机器上的 IIS 上。它将其文件安装到以下位置
我通过以下操作创建了 docker 文件
当我使用此 docker 文件运行 docker build 命令时,出现错误无法访问网络位置“C:\Program Files\\
没有谷歌的帮助。任何人都可以帮助我解决这个问题。我有几个问题 1. 默认情况下,docker 容器是否包含默认的 Windows 目录,如程序文件、程序文件 (x86)、用户配置文件、程序数据和应用程序数据?
编辑:对延迟响应表示歉意。提供下面的docker文件
FROM microsoft/aspnet
WORKDIR C:\\Installers
COPY EKBCS.exe C:\\Installers\\myinstaller.exe
COPY EKBCS.properties C:\\Installers\\myinstaller.properties
#RUN msiexec /unreg
#RUN msiexec /regserver
#RUN ["net …Run Code Online (Sandbox Code Playgroud) docker ×10
docker-build ×10
dockerfile ×6
.net ×1
azure ×1
compilation ×1
python ×1
python-3.x ×1