我有一个Dockerfile,我指的是docker-compose.yml.
我希望docker-compose.yml中的卷安装发生在Dockerfile之前RUN.
Dockerfile:
FROM node
WORKDIR /usr/src/app
RUN npm install --global gulp-cli \
&& npm install
ENTRYPOINT gulp watch
Run Code Online (Sandbox Code Playgroud)
泊坞窗,compose.yml
version: '2'
services:
build_tools:
build: docker/gulp
volumes_from:
- build_data:rw
build_data:
image: debian:jessie
volumes:
- .:/usr/src/app
Run Code Online (Sandbox Code Playgroud)
首先完成Dockerfile,然后从docker-compose安装它是完全合理的,但有没有办法解决它.
我想保持Dockerfile的通用性,同时从compose中传递更多特定的位.也许这不是最好的做法?
我有一个Dockerfile,我尝试激活python virtualenv之后,它应该在这个环境中安装所有依赖项.但是,一切仍然在全球范围内安装.我使用了不同的方法,但没有使用它们.我也没有任何错误.哪里有问题?
1.
ENV PATH $PATH:env/bin
2.
ENV PATH $PATH:env/bin/activate
3.
RUN . env/bin/activate
我还在Google Cloud上关注了python-runtime图像的Dockerfile配置示例,这与上面的内容基本相同.
设置这些环境变量与运行source/env/bin/activate相同.
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
此外,ENV VIRTUAL_ENV /env它是什么意思和使用方式?
在CI过程中登录时出现此错误:
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Run Code Online (Sandbox Code Playgroud)
我应该用"--password-stdin"代替"--password"吗?
我已成功将 API 项目从 .NET 5 升级到 .NET 6,并且在本地执行时运行良好(没有 Docker)。
我还将 Dockerfile 中的版本从“5.0-alpine3.13”更新为“ 6.0-alpine3.14 ”,如下所示(仅我所做的更改)。
ARG VERSION=6.0-alpine3.14
#Runtime stage
FROM mcr.microsoft.com/dotnet/aspnet:$VERSION AS base
EXPOSE 8080
ENV DOTNET_RUNNING_IN_CONTAINER=true \
ASPNETCORE_URLS=http://+:8080
#Build stage
FROM mcr.microsoft.com/dotnet/sdk:$VERSION AS build
WORKDIR /src
COPY ["/src/RM.Api/RM.Api.csproj", "/src/RM.Api/"]
RUN dotnet restore "/src/RM.Api/RM.Api.csproj"
COPY . .
WORKDIR "/src/src/RM.Api"
#Publish dotnet project
FROM build AS publish
ARG BUILDCONFIG=RELEASE
RUN dotnet publish "RM.Api.csproj" -c $BUILDCONFIG -o /app/publish
#Create local user, change ownership, and copy artifacts
FROM base AS final
WORKDIR /app
RUN …Run Code Online (Sandbox Code Playgroud) 我想在docker中部署我的python项目,我在requirments.txt中写道lxml>=3.5.0,因为项目需要lxml.这是我的dockfile:
FROM gliderlabs/alpine:3.3
RUN set -x \
&& buildDeps='\
python-dev \
py-pip \
build-base \
' \
&& apk --update add python py-lxml $buildDeps \
&& rm -rf /var/cache/apk/* \
&& mkdir -p /app
ENV INSTALL_PATH /app
WORKDIR $INSTALL_PATH
COPY requirements-docker.txt ./
RUN pip install -r requirements.txt
COPY . .
RUN apk del --purge $buildDeps
ENTRYPOINT ["celery", "-A", "tasks", "worker", "-l", "info", "-B"]
Run Code Online (Sandbox Code Playgroud)
当我将它部署到docker时,我得到了这个:
*********************************************************************************
Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
*********************************************************************************
error: …Run Code Online (Sandbox Code Playgroud) 我刚刚阅读了有关在Docker中运行Rails开发环境的这篇文章.好文章,效果很好.设置完所有后,我决定继续设置生产环境.
目标:
我希望rake db:create && rake db:migrate每次运行我的泊坞窗图像.
问题:
如果我移动数据库创建和迁移步骤...
docker-compose run app rake db:create
docker-compose run app rake db:migrate
Run Code Online (Sandbox Code Playgroud)
...进入Dockerfile ...
RUN rake db:create && rake db:migrate
Run Code Online (Sandbox Code Playgroud)
......会引发错误......
could not translate host name "postgres" to address: Name or service not known
Run Code Online (Sandbox Code Playgroud)
...因为host我database.yml...
default: &default
adapter: postgresql
encoding: unicode
pool: 5
timeout: 5000
username: postgres
host: postgres
port: 5432
development:
<<: *default
database: rails_five_development
Run Code Online (Sandbox Code Playgroud)
...设置为postgres我的docker-compose.yml...中指定的服务名称
version: "2"
services:
postgres: …Run Code Online (Sandbox Code Playgroud) 我正在使用Docker创建一个容器来测试我的Mac上基于PHP和MySQL构建的Web应用程序.我的PHP应用程序是使用Fat-Free Framework for MVC和路由构建的.我有两个Dockerfiles,一个用于MySQL,一个用于PHP.我已经成功使用了测试Docker应用程序,所以我相信我的图像安装正确.
错误的主要部分:
Internal Server Error
SQLSTATE[HY000] [2002] No such file or directory
[fatfree/lib/DB/SQL.php:466] PDO->__construct('mysql:host=127.0.0.1;port=3306;dbname=robohome','root','password',array(1002=>'SET NAMES utf8;'))
[fatfree/app/Controllers/Controller.php:24] DB\SQL->__construct('mysql:host=127.0.0.1;port=3306;dbname=robohome','root','password')
Run Code Online (Sandbox Code Playgroud)
注意,如果我使用127.0.0.1而不是我连接localhost得到一个略有不同的错误,说:SQLSTATE[HY000] [2002] Connection refused
我的PHP Dockerfile:
FROM php:5.6-apache
RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)
我的MySQL Dockerfile:
FROM mysql:5.7
ENV MYSQL_ROOT_PASSWORD password
ENV MYSQL_DATABASE robohome
COPY ./schema.sql /docker-entrypoint-initdb.d/
Run Code Online (Sandbox Code Playgroud)
我的Controller.php文件错误提及第24行:
<?php
namespace Controllers;
class Controller
{
protected $f3;
protected $db;
public function __construct()
{
$f3 = \Base::instance();
$this->f3 = $f3;
$mysqlServerName = …Run Code Online (Sandbox Code Playgroud) 如何编写Dockerfile命令以在alpine docker镜像中安装以下命令:
我正在尝试运行一个容器.我已将图像上传到私有Docker注册表.我想写一个compose文件来下载和部署图像.但我想将TAG名称作为docker-compose run命令中的变量传递.我的compose文件如下所示.如何将KB_DB_TAG_VERSION的值作为docker-compose up命令的一部分传递?
version: '3'
services:
db:
#build: k-db
user: "1000:50"
volumes:
- /data/mysql:/var/lib/mysql
container_name: k-db
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
image: XX:$KB_DB_TAG_VERSION
image: k-db
ports:
- "3307:3306"
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 docker 容器内容器化 Svelte js 应用程序,并且在日志中收到此错误,抱怨不同平台中的 esbuild,我使用的是 M1 mac,我尝试esbuild-wasm按照日志建议进行安装,并尝试npm i esbuild-linux-arm64作为一个步骤在 docker 文件中并尝试RUN npm install yarn按照日志建议使用纱线,因为它有内置的东西处理平台,但它不起作用我的 docker 文件
FROM node:16.10.0
WORKDIR /my-website
COPY package.json .
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)
错误是
You installed esbuild on another platform than the one you're currently using.
This won't work because esbuild is written with native code and needs to
install a platform-specific binary executable.
Specifically the "esbuild-darwin-arm64" package is present but …Run Code Online (Sandbox Code Playgroud) docker ×10
dockerfile ×10
python ×2
.net-6.0 ×1
alpine-linux ×1
dependencies ×1
linux ×1
lxml ×1
mysql ×1
npm ×1
php ×1
svelte ×1
virtualenv ×1