在我的Dockerfile中:
ENV PROJECTNAME mytestwebsite
CMD ["django-admin", "startproject", "$PROJECTNAME"]
Run Code Online (Sandbox Code Playgroud)
错误:
CommandError: '$PROJECTNAME' is not a valid project name
Run Code Online (Sandbox Code Playgroud)
什么是最快的解决方法?Docker是否有计划在更高版本的Docker中"修复"或引入此功能?
注意:如果我从Docker文件中删除CMD行然后运行Docker容器,我可以从容器内部手动运行Django-admin startproject $ PROJECTNAME,它将创建项目...
我正在为 python 脚本构建 Dockerfile,它将在 minikube windows 10 系统中运行,下面是我的 Dockerfile
使用以下命令构建 docker
docker build -t python-helloworld .
并将其加载到 minikube docker Demon 中
docker save python-helloworld | (eval $(minikube docker-env) && docker load)
Docker 文件
FROM python:3.7-alpine
#add user group and ass user to that group
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
#creates work dir
WORKDIR /app
#copy python script to the container folder app
COPY helloworld.py /app/helloworld.py
#user is appuser
USER appuser
ENTRYPOINT ["python", "/app/helloworld.py"]
Run Code Online (Sandbox Code Playgroud)
pythoncronjob.yml 文件(cron …
Docker 1.9允许将参数传递给dockerfile.请参阅链接:https://docs.docker.com/engine/reference/builder/#arg
如何在docker-compose.yml中传递相同的参数?
如果可能的话,请提供一个例子.
我目前正在为我的应用程序开发一个Node后端.对它进行码头化(docker build.)时,最长的阶段是RUN npm install
.RUN npm install
每个小型服务器代码的指令都会改变,通过让开发人员每次等待构建完成来影响生产力.
我发现在应用程序代码所在的位置运行npm install并使用ADD指令将node_modules添加到容器中解决了这个问题,但它远非最佳实践.它打破了它的整个想法,它会使容器更重.
还有其他方法吗?
我正在学习Docker.很多次,我看到它Dockerfile
有WORKDIR
命令
FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app
EXPOSE 3000
CMD [ “npm”, “start” ]
Run Code Online (Sandbox Code Playgroud)
我不能省略WORKDIR
,Copy
只是让我Dockerfile
的项目根源?使用这种方法的缺点是什么?
谁能帮我解决这个问题。
当我尝试从 dockerfile 为 laravel 应用程序创建 docker 图像时,我收到此错误:
检查 oniguruma... 没有配置:错误:不满足包要求(oniguruma):
Run Code Online (Sandbox Code Playgroud)No package 'oniguruma' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables ONIG_CFLAGS and ONIG_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.
命令“/bin/sh -c docker-php-ext-install pdo mbstring”返回非零代码:1
这是我的 Dockerfile:
FROM php:7
RUN apt-get update -y && apt-get install -y openssl zip unzip git
RUN curl -sS https://getcomposer.org/installer | …
Run Code Online (Sandbox Code Playgroud) 在Dockerfile中我有一个安装层requirements.txt
:
FROM python:2.7
RUN pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
当我构建docker镜像时,无论对此文件所做的任何更改,它都会运行整个过程.
如何pip install -r requirements.txt
在文件发生更改时确保仅运行Docker ?
Removing intermediate container f98c845d0f05
Step 3 : RUN pip install -r requirements.txt
---> Running in 8ceb63abaef6
Collecting https://github.com/tomchristie/django-rest-framework/archive/master.zip (from -r requirements.txt (line 30))
Downloading https://github.com/tomchristie/django-rest-framework/archive/master.zip
Collecting Django==1.8.7 (from -r requirements.txt (line 1))
Run Code Online (Sandbox Code Playgroud) 我们可以使用WORKDIR
将目录设置为工作目录Dockerfile
,但如果我们没有设置,那么默认值是什么?
我正在用docker做一些复杂的事情,但结果我不知道-it
标志是什么意思.最近我遇到了一些令docker run
我困惑的命令的例子.
docker run -itd ubuntu:xenial /bin/bash
Run Code Online (Sandbox Code Playgroud)
我的问题是-it
,如果在实例化期间运行容器,那么在这里写标志是有意义的bin/bash
在文档中我们有一个例子
docker run --name test -it debian
Run Code Online (Sandbox Code Playgroud)
有解释
-it指示Docker分配连接到容器的stdin的伪TTY; 在容器中创建交互式bash shell.
和帮助页面中-t标志的说明
-t, - try分配伪TTY
如果我删除-it标志期间
docker run -d ubuntu:xenial /bin/bash
Run Code Online (Sandbox Code Playgroud)
我新创建的容器并没有那么多
在 docker ps -a
它被指定为退出
对不起,如果我的问题很愚蠢,我在互联网上找不到解释(我对这一点有很大的误解).
我希望拿起一个docker映像来构建一个Java应用程序,并查看可用的OpenJDK映像的变体。我在这里查看https://github.com/docker-library/openjdk/tree/master/8/jdk,看到阿尔卑斯山,细长的窗户。这些之间有什么区别,每个变体都有什么区别?