标签: dockerfile

Docker在运行之前组合卷安装

我有一个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中传递更多特定的位.也许这不是最好的做法?

docker dockerfile docker-compose

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

在Dockerfile中激活python virtualenv

我有一个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它是什么意思和使用方式?

python virtualenv docker dockerfile

27
推荐指数
4
解决办法
2万
查看次数

Docker:通过CLI使用--password是不安全的.使用--password-stdin

在CI过程中登录时出现此错误:

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Run Code Online (Sandbox Code Playgroud)

我应该用"--password-stdin"代替"--password"吗?

continuous-integration docker dockerfile

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

在 Docker 中运行 .NET 6 项目会抛出 Globalization.CultureNotFoundException

我已成功将 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)

azure-storage docker dockerfile asp.net-core-6.0 .net-6.0

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

如何在docker中安装lxml

我想在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)

python lxml docker dockerfile

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

Docker Compose + Rails:迁移的最佳实践?

我刚刚阅读了有关在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)

...因为hostdatabase.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)

ruby-on-rails docker dockerfile docker-compose

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

使用Docker我收到错误:"SQLSTATE [HY000] [2002]没有这样的文件或目录"

我正在使用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)

php mysql docker dockerfile docker-compose

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

在Alpine docker中安装软件包

如何编写Dockerfile命令以在alpine docker镜像中安装以下命令:

  1. 软件 - 属性 - 通用
  2. 的openjdk -8- JDK
  3. python3
  4. NLTK
  5. 烧瓶

linux dependencies docker dockerfile alpine-linux

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

如何将环境变量传递给docker-compose up

我正在尝试运行一个容器.我已将图像上传到私有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 dockerfile docker-compose

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

您在与当前使用的平台不同的另一个平台上安装了 esbuild

我正在尝试在 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)

npm docker dockerfile docker-compose svelte

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