I am following a tutorial and using sqlc
in my project. However, it’s weird that I seem to mount an empty volume. After checking another post mounting the host directory, I found docker creates another empty folder, confirming that I did something wrong about it. Docker documentation doesn’t help resolve this issue. Currently, my command with bash terminal:
docker run --rm -v $(pwd)://src -w //src kjconroy/sqlc init
docker run --rm -v $(pwd)://src -w //src kjconroy/sqlc generate
The first command runs successfully but creates another empty folder. The built container is running, and it’s path is: \wsl$docker-desktop-datadatadockervolumes
on my Windows 10. However, the folder structure is different from the tutorial when I download the desktop docker, so I’ll add extra information about how I construct the setting. The construction is using Make with docker:
postgres:
docker run --name postgreslatest -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=secret -d postgres
createdb:
docker exec -it postgreslatest createdb --username=root --owner=root simple_bank
dropdb:
docker exec -it postgreslatest dropdb simple_bank
migrateup:
migrate -path db/migration -database "postgresql://root:secret@localhost:5432/simple_bank?sslmode=disable" -verbose up
migratedown:
migrate -path db/migration -database "postgresql://root:secret@localhost:5432/simple_bank?sslmode=disable" -verbose down
.PHONY: postgres createdb dropdb migrateup migratedown
Any help is appreciated.
2
Answers
I got it working. First of all, I still have no idea why bash command cannot correctly locate the
sqlc.yaml
file. However, under Windows 10 OS, I succeeded locate and generating files with the command provided by docs.The command is:
docker run --rm -v "%cd%:/src" -w /src kjconroy/sqlc generate
using ONLY CMD and the command also works combined with the MakeFile.In my case I had to replace
docker run --rm -v $(shell pwd) -w /src kjconroy/sqlc generate
with
docker run --rm -v $(PWD):/src -w /src kjconroy/sqlc generate
in my make file