docker - Docker Compose:标志值生成器无效:
问题描述
您好,我正在尝试制作 dockercompose,但出现以下错误:
从标志值构建器无效:构建器的拉取访问被拒绝,存储库不存在或可能需要“docker登录”:拒绝:请求的资源访问被拒绝
我无法想象我可能会在哪里失踪
我的码头工人撰写文件:
version: "3.7"
services:
db:
image: postgres:12
restart: always
container_name: "db"
ports:
- "${DB_PORT}:5432"
volumes:
- db_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASS}
POSTGRES_DB: ${DB_NAME}
pgadmin:
image: dpage/pgadmin4
restart: always
container_name: "pgadmin4"
depends_on:
- db
ports:
- 5050:80
environment:
PGADMIN_DEFAULT_EMAIL: emasa@emasa.com
PGADMIN_DEFAULT_PASSWORD: admin
api:
image: server_emasa
container_name: api
restart: always
depends_on:
- db
ports:
- "${SERVER_PORT}:${SERVER_PORT}"
volumes:
db_data:
我的 Docker 文件:
FROM node as builder
WORKDIR usr/app
COPY package*.json ./
COPY --from=builder /usr/app/dist ./dist
COPY ormconfig.docker.json ./ormconfig.json
COPY .env .
RUN yarn install
RUN yarn run build
COPY back-end/ ./
EXPOSE 4000
和我的环境文件:
SERVER_PORT = 4000
DB_HOST = 0.0.0.0
DB_PORT = 5432
DB_USER = spirit
DB_PASS = emasa
DB_NAME = emasa_base
我的 json orm 配置:
{
"type": "postgres",
"host": "${DB_HOST}",
"port": "${DB_PORT}",
"username": "${DB_USER}",
"password": "${DB_PASS}",
"database": "${DB_NAME}",
"synchronize": true,
"logging": false,
"entities": ["src/entity/**/*.ts"],
"migrations": ["src/migration/**/*.ts"],
"subscribers": ["src/subscriber/**/*.ts"],
"cli": {
"entitiesDir": "src/entity",
"migrationsDir": "src/migration",
"subscribersDir": "src/subscriber"
}
}
我的文件夹结构:
解决方案
使用时,COPY
您可以使用--from
参考一些先前的构建阶段或一些外部图像。由于builder
您当前的构建阶段是 Docker 认为您--from=builder
指的是一些外部图像,因此会给您该错误。再次检查您的 Dockerfile 是否正确。
让我们从基础开始。尝试:
FROM node as builder
WORKDIR usr/app
COPY . .
RUN yarn install
RUN yarn run build
EXPOSE 4000
推荐阅读
- laravel - 从控制器到文件的 Laravel 路径
- javascript - jspdf中的要点
- svg - 为什么这个 svg 不填满屏幕?
- swift - 从结果成功值回退到错误的 Swift 表达式
- java - java.lang.IllegalStateException:缺少“-javaagent”JVM 参数。确保使用附加到 JVM 的 Quasar java 代理运行测试
- c - 使用命令行参数时出现分段错误错误,C 程序
- mono - 如何获取服务器端事件 Flux 中的记录总数
- delphi - 如何防止 Chromium 写入控制台?
- reactjs - 如何在 Cypress 中模拟 websocket 消息
- google-chrome - Chrome "immersive-vr" isSessionSupported 给出 false 与 threejs.org 示例