我试图使用Docker compose文件在我的alpine中安装python pip但是得到以下错误.
ERROR: unsatisfiable constraints:
py-pip (missing):
required by: world[py-pip]
ERROR: Service 'web' failed to build: The command '/bin/sh -c apk add py-pip' returned a non-zero code: 1
Run Code Online (Sandbox Code Playgroud) 在我的Spring Boot应用程序中,我想要将属性外部化以在Docker容器中运行.首次部署时,my-server/src/main/resources/application.yml应用程序按预期加载和使用当前所属的属性.一切正常.
但是,我的问题是我需要这些属性可以根据需要更新,所以我需要application.yml在Docker容器上访问一次该文件.但此时,它build/docker/在运行buildDocker任务之前未包含在目录中,因此在首次部署后不会复制或访问.
所以,我试过的是将Yaml文件复制到docker/构建目录,将其复制到可访问的目录(/opt/meanwhileinhell/myapp/conf),并使用该spring.config.location属性将配置的位置传递给我的Dockerfile中的Jar:
ENTRYPOINT ["java",\
...
"-jar", "/app.jar",\
"--spring.config.location=classpath:${configDirectory}"]
Run Code Online (Sandbox Code Playgroud)
看看在Docker容器上运行的Command我可以看到这是预期的:
/app.jar --spring.config.location=classpath:/opt/meanwhileinhell/myapp/conf]
Run Code Online (Sandbox Code Playgroud)
但是,当我更新此文件中的属性并重新启动Docker容器时,它没有获取更改.文件权限是:
-rw-r--r-- 1 root root 618 Sep 5 13:59 application.yml
Run Code Online (Sandbox Code Playgroud)
该文件规定:
配置自定义配置位置时,除默认位置外,还会使用它们.在默认位置之前搜索自定义位置.
我似乎无法弄清楚我做错了什么或错误解释,但更重要的是,这是将这种类型的Docker场景的配置外部化的正确方法吗?
我有一个简单的 Dockerfile:
FROM ubuntu:18.04
RUN apt-get update
RUN apt-get install -y wget && rm -rf /var/lib/apt/lists/*
RUN wget \
https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \
&& mkdir /root/.conda \
&& bash Miniconda3-latest-Linux-x86_64.sh -b \
&& rm -f Miniconda3-latest-Linux-x86_64.sh \
&& echo PATH="/root/miniconda3/bin":$PATH >> .bashrc \
&& exec bash \
&& conda --version
RUN conda --version
Run Code Online (Sandbox Code Playgroud)
它不能被建造。在最后一步,我得到了/bin/sh: 1: conda: not found......
第一次出现conda --version没有引发错误,这让我想知道这是一个PATH问题吗?
我想RUN在这个 Dockerfile 中有另一个条目,我将在其中安装包conda install ...
最后我想要CMD ["bash", "test.py"]条目,以便在执行docker run此图像时它会自动运行一个简单的 …
我听说 docker 在 linux 中不需要单独的操作系统,因为它与主机操作系统共享,但是在 hyper-v Windows 中它可以运行 Windows 操作系统,因为它可以超 linux 虚拟机,因此可以在其上运行 linux 软件。
但是,我FROM对 dockerfile 中的阶段感到困惑,所有指南都这样说:
FROM ubuntu:18.04
cp . /usr/local/bin
RUN make
CMD /usr/local/bin/youapp
Run Code Online (Sandbox Code Playgroud)
我可以理解这一步,首先你需要一个操作系统,然后你部署你的应用程序;最后你运行你的应用程序或其他什么。
但是 FROM 阶段的真正含义是什么?
它总是需要操作系统吗?nginx docker 映像中是否有操作系统?
如果我想构建自己的应用程序,我会编写它、编译它、运行它;但是我自己的应用程序需要操作系统吗?如果不是,我应该在FROM阶段写什么?
我得到了这张图片,它说 docker 容器不需要 os,但使用主机 os,现在 docker build 总是需要一个 os

我正在尝试在 docker 容器中运行 typescript express.js。运行docker后,我收到以下错误:
> ts-node-dev src/app.ts
Using ts-node version 8.10.1, typescript version 3.9.2
TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js
at Object.watch (fs.js:1441:11)
at add (/app/node_modules/filewatcher/index.js:74:34)
at /app/node_modules/filewatcher/index.js:93:5
at FSReqCallback.oncomplete (fs.js:176:5)
Run Code Online (Sandbox Code Playgroud)
我的 Dockerfile:
FROM node:alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["npm","start"]
Run Code Online (Sandbox Code Playgroud)
和 package.json 文件:
{
"name": "app-name",
"version": "1.0.0",
"description": "Init master",
"main": "src/app.ts",
"scripts": {
"build": "./node_modules/.bin/tsc",
"start": …Run Code Online (Sandbox Code Playgroud) 我是 Docker 的新手,并尝试使用纯 html 构建 docker 映像,但我收到此错误消息,说 无法使用前端 dockerfile.v0 解决:无法读取 dockerfile:open /var/lib/docker/tmp/buildkit-mount602954594 /Dockerfile: 没有那个文件或目录
我的文件夹目录是这样的
C:\Users\hailey\Desktop\GitTest
|- Dockerfile.txt
|- README.md
|- testHelloWorld.html
Run Code Online (Sandbox Code Playgroud)
在 Dockerfile 里面,我有
FROM ubuntu
WORKDIR C/Users/hailey/Desktop/GitTest
COPY testHelloWorld.html .
EXPOSE 8080
CMD ["html","testHelloWorld.html"]
Run Code Online (Sandbox Code Playgroud)
我做了我的命令 docker build 。在目录 C:\Users\hailey\Desktop\GitTest 内。然后得到
[+] Building 0.1s (2/2) FINISHED
=> [internal] load build definition from Dockerfile
=> => transferring dockerfile: 2B
=> [internal] load .dockerignore
=> => transferring context: 2B
failed to solve with frontend dockerfile.v0: failed to read dockerfile: …Run Code Online (Sandbox Code Playgroud) 当构建需要从打字稿编译的图像时,我收到此错误。
sh: 1: tsc: 未找到
命令“/bin/sh -c npm run tsc”返回非零代码:127
这是相关代码:
docker-compose.yaml
version: '3.1'
services:
nodeserver:
build:
context: .
target: prod
ports:
- "3000:3000"
volumes:
- ./src:/app/src
- ./public:/app/public
- ./templates:/app/templates
Run Code Online (Sandbox Code Playgroud)
Dockerfile
FROM node:15.11.0 AS base
EXPOSE 3000
ENV NODE_ENV=production
WORKDIR /app
COPY package*.json ./
RUN npm install --only=production && npm cache clean --force
##########################################################################################
FROM base AS dev
ENV NODE_ENV=development
RUN npm install --only=development
CMD npm run dev
##########################################################################################
FROM dev AS source
COPY dist dist
COPY templates templates …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 dockerfile 将我的 django 应用程序部署到应用程序引擎,为此,在阅读了一些博客(例如这些)之后,我创建了一个 docker-compose.yml 文件,但是当我运行命令时docker compose up,docker-compose -f docker-compose-deploy.yml run --rm gcloud sh -c "gcloud app deploy"我收到了错误key cannot contain a space。见下文:
例如:
$ docker compose up
key cannot contain a space
Run Code Online (Sandbox Code Playgroud)
$ cat docker-compose.yml
version: '3.7'
services:
app:
build:
context: .
ports: ['8000:8000']
volumes: ['./app:/app']
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个错误吗?我已尝试 yamllint 验证 yaml 文件是否存在任何空格/缩进类型的错误,并且它没有向我显示任何错误。
编辑:这是较长命令中文件的内容:
version: '3.7'
services:
gcloud:
image: google/cloud-sdk:338.0.0
volumes:
- gcp-creds:/creds
- .:/app
working_dir: /app
environment:
- CLOUDSDK_CONFIG=/creds
volumes:
gcp-creds:
Run Code Online (Sandbox Code Playgroud) 我有以下Dockerfile jenkins作为基本图像:
FROM jenkins
USER root
ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
RUN for plugin in git-client git ws-cleanup ; do wget -O $JENKINS_HOME/plugins/${plugin}.hpi $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
EXPOSE 8080
Run Code Online (Sandbox Code Playgroud)
我正在尝试安装一些额外的插件,但它给我一个错误说 no such file or directory

然后我启动并连接到此构建步骤的容器,以"调试"错误:

但是,我找不到原因,因为每个目录似乎都存在.此外,如果我然后在bash中手动运行for循环,所有插件都正确安装...
我进一步注意到,如果我将它们安装在根目录中,插件的安装工作如下:
RUN for plugin in git-client git ws-cleanup ; do wget -O ${plugin}.hpi $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
Run Code Online (Sandbox Code Playgroud)
但是,这是错误的地方,因为它们必须放在$ JENKINS_HOME/plugins目录中
为什么我无法安装插件$JENKINS_HOME/plugins?
/dev/video0,/dev/video1# v4l2-ctl --list-devices
Venus USB2.0 Camera (usb-0000:00:1a.0-1.2.2):
/dev/video1
USB 2.0 Camera (usb-0000:00:1a.0-1.3):
/dev/video0
Run Code Online (Sandbox Code Playgroud)
我需要将Ubuntu 14.04 主机上的网络摄像头共享到Ubuntu 16.04 docker容器,并且能够getUserMedia从主机和容器上运行的每个铬实例上的每个摄像头或两个独立的docker容器上获取视频流(WebRTC ).
为了测试getUserMedia,我正在浏览
FROM ubuntu:16.04
# Install chromium
RUN apt-get update \
&& apt-get install sudo chromium-browser alsa-base alsa-utils alsa-oss -y \
&& rm -rf /var/lib/apt/lists/*
# Create a normal user to run chromium as
RUN useradd --create-home browser …Run Code Online (Sandbox Code Playgroud) docker ×10
dockerfile ×10
alpine-linux ×2
node.js ×2
typescript ×2
anaconda ×1
chromium ×1
jenkins ×1
linux ×1
miniconda ×1
python ×1
spring-boot ×1
ubuntu-14.04 ×1
webrtc ×1
yaml ×1